上文说到,我们可以通过分析Ajax访问服务器的方式来获取Ajax数据。Ajax也算动态渲染页面的一种。所以,动态页面也是可以爬取滴。
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。简而言之,Selenium可以模拟用户操作浏览器,所以它也可以提取动态页面。
安装Seleniumcmd下输入:
pip install selenium
同时下载浏览器对应版本的驱动。
Chrome:点击下载
Firefox:点击下载
IE:点击下载
下载后解压到python安装目录的scripts下。
Selenium支持许多的浏览器,我们首先需要让系统知道你使用的是什么浏览器,我们可以用以下方式初始化:
from selenium import webdriver
browser = webdriver.Chrome()
browser = webdriver.Firefox()
browser = webdriver.Edge()
browser = webdriver.PhantomJS()
browser = webdriver.Sarari()
之后我们就可以使用调用browser对象,执行各种动作来模拟浏览器操作
访问页面我们用get()方法来请求网页,只需要传入URL即可。这里我们访问百度页面,并打印出源代码:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get(‘https://www.baidu.com’)
print(browser.page_source)
browser.close()
查找节点
单个节点