200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 爬虫之简易的网页采集器(代码与教程)

爬虫之简易的网页采集器(代码与教程)

时间:2019-05-07 04:37:25

相关推荐

爬虫之简易的网页采集器(代码与教程)

爬虫的工作流程:

1.发起请求2.获取响应内容3.解析内容4.保存数据。

该爬虫中使用requests模块和用到UA伪装的方式。

UA伪装,即请求载体身份标识的伪装:

User-Agent:

请求载体身份标识,通过浏览器发起的请求,请求载体为浏览器,则该请求的User-Agent为浏览器的身份标识,如果使用爬虫程序发起的请求,则该请求的载体为爬虫程序,则该请求的User-Agent为爬虫程序的身份标识。服务器可以通过该值来判断发起请求的是浏览器还是爬虫程序。

反爬机制:

某些门户网站会对访问该网站的请求中的User-Agent进行捕获和判断,如果该请求的UA为爬虫程序,那么就拒绝该提供请求数据。

反反爬策略:

将爬虫的UA伪装成某一款浏览器的身份标识

那么如何获取User-Agent呢?打开浏览右键检查进入到Network按Ctrl+R显示已经加载的请求,点击该请求的网页然后翻到User-Agent的位置然后将信息复制粘贴即可。如下图

源代码与注释如下,运行后输入我们要搜索的内容即可进行爬取:

import requests#UA伪装:#UA:User-Agent(请求载体的身份标识)#UA伪装:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器#说明该请求时一个正常请求(即用户通过浏览器发起的请求)但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,#则表示该请求为不正常的请求(爬虫)。那么服务器端就很有可能拒绝该次请求。#UA伪装:让爬虫对应的请求载体身份标识伪装成某一刻浏览器if __name__ == "__main__":#UA伪装:将对应的User-Agent封装到一个字典中header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38'}url="/web" #url携带的参数需要修改为动态,这里为query=#处理url携带的参数:封装到字典guanjianci = input('enter a word:')param ={'query':guanjianci}#对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数response = requests.get(url=url,params=param,headers=header)#获取响应数据page_text = response.textfileName = guanjianci+'.html'with open(fileName,'w',encoding='utf-8') as fp:fp.write(page_text)print(fileName,"保存成功")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。