python抓取动态网页(Python抓取框架Scrapy快速入门教程》的运行流程及运行)
优采云 发布时间: 2022-02-20 15:11python抓取动态网页(Python抓取框架Scrapy快速入门教程》的运行流程及运行)
Selenium 是一个用于测试 WebUI 的自动化测试框架。它通过调用Chrome和Firefox来完成动态页面(包括Javascript)的加载,因此也可以用来完成动态网页抓取。
1、下载硒
wget http://selenium-release.storage.googleapis.com/2.44/selenium-server-standalone-2.44.0.jar
2、启动 selenium-standalone
java -jar ./selenium-server-standalone-2.44.0.jar -singleWindow
上面启动的是一个web服务器,它可以接受一个url字符串,然后在自己的进程中启动浏览器,解析并与客户端交互,并根据需要将解析结果返回给客户端。
3、安装硒
sudo apt-get install python-selenium
这个包是selenium客户端的python包,当然也可以通过pypi或者pip手动安装。
文档可以在这里找到。
4、代码
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Init selenium replace the ip port with your own selenium-standalone
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=DesiredCapabilities.FIREFOX
)
# Remote get dynamic page on selenium-standalone
try:
driver.set_page_load_timeout(5)
driver.get(response.url)
except:
pass
# Parse
for tag in driver.find_elements_by_xpath(xpath):
# ...process
pass
# Cleanup selenium
driver.close()
5、在非 X11 环境中使用
可以通过xvfb来完成,这是一个模拟xserver的程序,可以在没有xserver的机器上运行,为xserver服务。
sudo apt-get install xvfb
运行
xvfb-run java -jar ./selenium-server-standalone-2.44.0.jar -singleWindow
6、关于与Scrapy结合
请参考我之前写的文章《Python爬虫框架Scrapy快速入门教程》,并不复杂。