在 Web 服务器上使用 java 内容进行 Scrapy
Scrapy with java content on a web server
我想从一个显然使用 javascript 生成 table 的网站上抓取内容(该网站是 oddsportal.com)。
我看到 Scrapy 无法加载动态内容,我读到 selenium 可以处理它,但我打算使用网络服务器。
有没有办法解析这个网站或获取动态请求并使用 scrapy 解析它?
例如,我想从该页面导入完整的 table 以及 headers、比赛名称和赔率
据我了解,您有一个限制,即您没有真正的显示器。您仍然可以使用 selenium - 有一个无头 PhantomJS
browser that can be automated, there is an option to work in a virtual display, and you can use a remote selenium server or docker-selenium
.
selenium和scrapy结合的例子有很多,例如:
- selenium with scrapy for dynamic page
- Scrapy with Selenium crawling but not scraping
并且,还要检查 scrapy-splash
中间件是否足以满足您的用例。
对于通过 AJAX 和 Javascript 具有动态内容的网站,我使用了 PhantomJS。它不需要打开浏览器,因为它本身就是一个完全可编写脚本的网络浏览器。 PhantomJS 速度很快,包括对各种 Web 标准的原生支持,如 DOM 处理、CSS 选择器、JSON 和 Canvas。
如果你不是 JavaScript 忍者,你应该看看 CasperJS,它是用 PhantomJS 写的。它简化了定义完整导航场景的过程,并提供了有用的高级功能。
这里有一个关于 CasperJS 工作原理的例子:
CasperJs and Jquery with chained Selects
我想从一个显然使用 javascript 生成 table 的网站上抓取内容(该网站是 oddsportal.com)。
我看到 Scrapy 无法加载动态内容,我读到 selenium 可以处理它,但我打算使用网络服务器。
有没有办法解析这个网站或获取动态请求并使用 scrapy 解析它?
例如,我想从该页面导入完整的 table 以及 headers、比赛名称和赔率
据我了解,您有一个限制,即您没有真正的显示器。您仍然可以使用 selenium - 有一个无头 PhantomJS
browser that can be automated, there is an option to work in a virtual display, and you can use a remote selenium server or docker-selenium
.
selenium和scrapy结合的例子有很多,例如:
- selenium with scrapy for dynamic page
- Scrapy with Selenium crawling but not scraping
并且,还要检查 scrapy-splash
中间件是否足以满足您的用例。
对于通过 AJAX 和 Javascript 具有动态内容的网站,我使用了 PhantomJS。它不需要打开浏览器,因为它本身就是一个完全可编写脚本的网络浏览器。 PhantomJS 速度很快,包括对各种 Web 标准的原生支持,如 DOM 处理、CSS 选择器、JSON 和 Canvas。
如果你不是 JavaScript 忍者,你应该看看 CasperJS,它是用 PhantomJS 写的。它简化了定义完整导航场景的过程,并提供了有用的高级功能。
这里有一个关于 CasperJS 工作原理的例子:
CasperJs and Jquery with chained Selects