最近学习了一下爬虫,兴趣使然吧!(注:以下均在python3的环境下实验)1.基本库,先说一下基本库有,urllib和requests两个库:
基本库的作用是:发送页面请求,处理异常,解析链接,分析Robots协议。基本用法urllib有:from urllib.request import
urlopen Requestreq = Request(url,headers=headers) pic_req = urlopen(req) html =
pic_req.read()
可以看出urllib可以添加头文件,模拟正常的响应,但是设置cookie非常繁琐,需要添加额外的cookie相关的库,大部分网站现在都会设置cookie来跟踪用户的数据浏览,cookie的缺失会导致对方服务器持续一段时间后直接断开连接。urlopen()打开网页,read()读取网页源码,urllib的响应速度极快,也是非常适合小规模爬虫的,
requests库基本用法:import requests response = requests.get(url,headers=headers)
print(response.status_code) # 打印状态码 print(response.url) # 打印请求
urlprint(response.headers) # 打印头信息 print(response.cookies) # 打印cookie信息
print(response.text) #以文本形式打印网页源码 print(response.content) #以字节流形式打印
requests库优于urllib的地方在于里面直接有cookie,登录验证,代理设置等等。可以在headers里面设置cookie,发送请求。
当然在某些场合下,如在某些图片的处理上,urllib的性能优于requests。




2,解析库解析库有:Xpath,Beautiful Soup,pyquery,正则表达式



解析库的主要作用是:处理基本库提交过来的页面数据,进行解析,获取需要的内容对页面进行加工整理。
使用Xpath需要安装lxml,其用法在于根据标签获得需要的href或者text,还能对网页url路径解析



nodename                选取此节点的所有子节点/                               
从当前节点直接选取子节点//                               重定向节点,可以从任意位置开始(用的很多).            
                   选取当前节点..                                选取当前节点的父节点@        
                     选取属性Beautiful
Soup,pyquery也是类似,定义标签,然后通过find()或者find_all()通过标签获取文本属性或者文本,更深一步的文本加工,或者信息提取,需要用到正则表达式。
因为我首次接触爬虫就是直接用正则表达式解析的,正则表达式,算是“万金油”型的东西,既可以进行标签内容定位,也可以进行内容的再次加工提取。用好了,正则表达式在解析方面基本是万能的,正则表达式里面的东西太多就不在这里说了。



3,高级的爬虫selenium
selenium不同于其他的库,selenium是调用真实的浏览器,去获取网页信息,不需要设置cookie,headers这些东西。也不容易被对方服务器中断连接。更为强大的地方在于,selenium可以模仿用户的键盘和鼠标行为,发送信息指令。并且自带的有解析网页的方法。经过Javascript渲染的页面selenium也可以正常解析。抓取方式非常有效。



selenium需要有本地浏览器支持:支持的浏览器有:Chrome()#google浏览器,已经提供了headless模式



                            Firefox()#火狐浏览器                           
Edge()#windows的IE浏览器                         
PhantomJS()#以前很适合selenium的,其无头模式大受欢迎,然而2018年3月份,开发者之间出现矛盾,项目停止更新,被封存了,最新版的selenium已经不再支持PhantomJS,而Chrome()从2017年开始提供浏览器的headless()(无头模式)广泛使用。
                            Safari()#苹果的浏览器     
用selenium+Chrome和urllib结合的方式,爬取了塔多漫画漫画网的漫画,具体代码请在github 上下载:      
https://github.com/linggood/-

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信