python 抓取动态网页
一些爬虫新手在练习时会碰到动态网页,会发现获取它的html很困难。接下来介绍一款python自动化测试工具selenium,这款工具有很多个语言版本。我们以拉勾网的动态网页为例进行爬取。实验地址:http://www.lagou.com/zhaopin/Python/?labelWords=label
(1)所谓知己知彼,我们先来分析一下拉钩网这个页面。当我们按下下一页的时候
http://www.cnblogs.com/jbjhome/p/data:image/png;base64,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
我们会坑爹的发现url并没有改变,这不是坑人嘛!!!
(2)但不用担心,selenium这时候闪亮登场。专为小白设计,“爬虫屠龙刀”。安装啥的很简单,pip install selenium就行了。selenium可以模拟浏览器的运行,是一款自动化测试工具。
接下来是快速入门时间。
a.确保你的电脑装有firefox或ie或opera或chrome
第一步:
#coding:utf-8
fromselenium importwebdriver
browser=webdriver.Firefox()
运行脚本后浏览器就自动打开啦!注(如果firefox遇到cookie导入界面的修改C:\Users\JBJs\AppData\Roaming\Mozilla\Firefox\profiles.ini的IsRelative的值。
现在browser就可以当做一个浏览器来操作了。你可以这样
browser.get('http://www.lagou.com/zhaopin/Python/?labelWords=label')#跳转到lagou网页面
而后这样
browser.find_element_by_class_name('pager_next')#根据class属性找到下一页的按钮,也可以根据css,path,id找
还可以这样
browser.find_element_by_class_name('pager_next').click()#像鼠标一样点击它
如果要获取html代码
html=(browser.page_source).encode('utf-8‘)
好了,到此为止吧。其实还有好多好玩的等着你们去发掘!
页:
[1]