Python网络爬虫案例实战:动态网页爬取:selenium爬取动态网页

Python网络爬虫案例实战:动态网页爬取:selenium爬取动态网页

利用“审查元素”功能找到源地址十分容易,但是有些网站非常复杂。除此之外,有一些数据真实地址的URL 也十分冗长和复杂,有些网站为了规避这些爬取会对地址进行加密。
因此,在此介绍另一种方法,即使用浏览器渲染引擎,直接用浏览器在显示网页时解析HTML,应用CSS样式并执行JavaScript的语句。此方法在爬虫过程中会打开一个浏览器,加载该网页,自动操作浏览器浏览各个网页,顺便把数据抓下来。通俗地说,就是使用浏览器渲染方法,将爬取动态网页变成了爬取静态网页。
可以用 Python的 selenium库模拟浏览器完成爬取。selenium是一个用于 Web 应用程序测试的工具。selenium测试直接运行在浏览器中,浏览器自动按照脚本代码做出单击、输入、打开、验证等操作,就像真正的用户在操作一样。

4.4.1安装 selenium

selenium的安装非常简单,和其他的Python库一样,可以用pip安装,代码为:

pip install selenium 

selenium的脚本可以控制浏览器进行操作,可以实现多个浏览器的调用,包括 IE(7、8、9、10、11)、Firefox、Safari、Google Chrome、Opera等。
安装完成后打开终端,输入python回车,进入Python,如图4-21所示。
在这里插入图片描述
接着,在终端中输入from selenium import webdriver并回车。若未报错则成功,如图4-22所示;若失败则重新安装selenium模块。
在这里插入图片描述
若输入 web = webdriver.Firefox()并回车,则打开浏览器。正常情况下会打开一个这样的Firefox,如图4-23所示。
在这里插入图片描述

在图4-23中的地址栏带有黄色条纹,还有个小机器人图标。如果出现错误“selenium.common.exceptions.WebDriverException:Message:'geckodriver’executable needs to be in PATH.”,即证明没有安装驱动,这时只需要安装驱动即可。

Mac版 Firefox驱动的下载地址为:http://download.youkuaiyun.com/download/qq_ 34122135/10203884,下载完驱动,解压得到 geckodriver,然后把文件移到/usr/local/bin下面,并赋给x执行权限即可。安装完驱动,然后测试一下用Python 代码控制浏览器打开a百度首页。

from selenium import webdriver
wb = webdriver.Firefox()
wb.get("http://www.baidu.com")
#打印网页源码
print(wb.page_source)

执行程序得到如图4-24所示界面。可以看到,启动了一个带小机器人图标的Firefox,并且打开了百度首页,控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值