爬虫实战
requests实现简易网页采集器UA伪装UAUA伪装requests实现简易网页采集器
目标:实现输入关键字能爬取某一浏览器页面
关键步骤:
指定url,词条封装发起请求,get方法返回响应对象拼接参数,获取响应数据存储数据
代码:
import requestsif __name__ == "__main__":# url='/web?query=菜菜'url = '/web'# 1.处理url携带的参数:封装到字典中。动态输入搜索关键字kw=input('enter a word:')# 将要输入的词条封装到字典中parm={'query':kw}# 2.(发起请求)对指定的url发起的请求对应url是携带的参数。并且请求过程中处理了参数。# params是url的参数值(自己输入)。动态拼接参数。response = requests.get(url=url,params=parm)# 3.获取响应数据page_text=response.text# 4.存储fileName=kw+'.html'with open(fileName,'w',encoding='utf-8') as fp:fp.write(page_text)print(fileName,"保存成功!")
结果:
html文件运行结果:
然而当运行html文件的时候会发现不能访问,这是因为在访问时服务器识别不是某浏览器请求,服务器端会拒绝其请求,这是就需要UA伪装。
UA伪装
UA
UA:User-Agent翻译是用户代理,其实就是用户的身份。门户网站的服务器会检测用户的身份,如果检测到请求的载体身份为某一款浏览器说明该请求是一个正常的请求,如果检测到请求的载体身份不是某一款浏览器说明该请求不是一个正常的请求(爬虫),服务器端会拒绝其请求。
UA伪装
UA伪装:让爬虫对应的请求载体身份标识伪装成某一浏览器。
# UA伪装,将对应的user-agent封装到一个字典中,这里以火狐为例headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/0101 Firefox/93.0'}
在.get响应中添加参数header
response = requests.get(url=url,params=parm,headers=headers)
html文件运行结果: