1

我正在尝试使用无头 Selenium 抓取包含图像的网站。最初,该网站填充了 50 张图像。如果向下滚动,就会加载越来越多的图像。

Windows 7 x64
python 2.7
最近安装的 selenium

[1] 非无头
导航到带有 selenium 的网站如下:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get(url)
browser.execute_script('window.scrollBy(0, 10000)')
browser.page_source

这有效(如果有人有更好的建议,请告诉我)。
我可以继续scrollBy()直到我到达最后,然后拉出源页面。

[2] 使用 HTMLUNIT 无头

from selenium import webdriver
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.HTMLUNIT)
driver.get(url)

我不能在这种无头环境中使用scrollBy() 。
有关如何抓取此类页面的任何建议?谢谢

4

3 回答 3

0

java当我尝试相同的方法时,我收到了 selenium 在连接到模拟时崩溃的错误消息javascript

我将脚本写入 execute_script 方法,然后代码运行良好。

我猜 selenium 和 java 服务器部分之间的通信配置不正确。

启用javascriptwithHTMLUNITDRIVERWITHJS是可能且快速的;)

于 2013-09-06T06:23:21.810 回答
0

使用 HtmlUnit 驱动程序时需要显式启用 JavaScript:

driver.setJavascriptEnabled(true);

根据 [http://code.google.com/p/selenium/wiki/HtmlUnitDriver](the docs),默认情况下它应该模拟 IE 的 JavaScript 处理。

于 2012-06-21T16:31:44.390 回答
0

一种选择是研究 JavaScript 以了解它如何计算接下来要加载的内容。然后在您的抓取客户端中实现该逻辑。一旦你这样做了,你就可以使用更快的抓取工具,比如 Perl 的 WWW::Mechanize。

于 2012-06-20T22:00:10.027 回答