免费网页采集器(爬虫的工作流程:1.发起请求2.获取响应内容3.解析 )
优采云 发布时间: 2021-11-01 13:04免费网页采集器(爬虫的工作流程:1.发起请求2.获取响应内容3.解析
)
爬虫的工作流程:
1.发起请求2.获取响应内容3.分析内容4.保存数据。
本爬虫使用了requests模块和UA伪装。
UA伪装,即伪装请求载体的身份:
用户代理:
请求载体标识,浏览器发起的请求,请求载体是浏览器,那么请求的User-Agent就是浏览器的身份,如果使用爬虫程序发起的请求,请求的载体是一个爬虫程序,那么请求的User-Agent就是爬虫的身份。服务器可以使用此值来确定请求是浏览器还是爬虫。
防爬机构:
有的portal网站会在访问网站的请求中捕获并判断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="https://www.sogou.com/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.text
fileName = guanjianci+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(fileName,"保存成功")