python爬虫 urllib模块反爬虫机制UA详解

时间:2021-05-22

方法: 使用urlencode函数

urllib.request.urlopen()

import urllib.requestimport urllib.parseurl = 'https:///web?query='# url的特性:url不可以存在非ASCII编码字符数据word = urllib.parse.quote("周杰伦")# 将编码后的数据值拼接回url中url = url+word # 有效url# 发请求之前对请求的UA进行伪造,伪造完再对请求url发起请求# UA伪造# 1 子制定一个请求对象,headers是请求头信息,字典形式# 封装自定义的请求头信息的字典,# 注意:在headers字典中可以封装任意的请求头信息headers = { # 存储任意的请求头信息 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'}# 该请求对象的UA进行了成功的伪装request = urllib.request.Request(url=url, headers=headers)# 2.针对自定义请求对象发起请求response = urllib.request.urlopen(request)# 3.获取响应对象中的页面数据:read函数可以获取响应对象中存储的页面数据(byte类型的数据值)page_text = response.read()# 4.持久化存储:将爬取的页面数据写入文件进行保存with open("周杰伦.html","wb") as f: f.write(page_text)print("写入数据成功")

这样就可以突破网站的反爬机制

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章