Python爬虫如何通过更换IP避开网站的反爬虫机制(二)
2019年4月26日 17:52

1554716325(1).jpg

神鸡 IP代理 的小编在上篇在 Python爬虫 如何通过更换IP避开网站的反爬虫机制一里讲到 动态IP 和拨号 VPS ,今天第二篇讲随机UA。

在两篇文章里,所有代码并非全部源码,不保证代码可以直接复制粘贴使用,建议大家理解原理之后,根据自己的爬虫项目需要进行相应的调整。


使用随机 UAUA,即 User-Agent ,使用它可以将我们的爬虫伪装成浏览器,让对方以为是真人在使用浏览器访问,从而骗过目标网站的反爬机制。但是使用固定的 UA 去爬也是会有问题的,你想嘛,假如你发现最近几个小时内来访问的几万个用户,用的都是同一个浏览器,你还会认为对面是真人吗?

所以,为了让我们的爬虫更像真人使用,我们不仅要为它设置 UA,还要使用随机 UA。

以下是UA 列表,截取了部分,这个在网上随便一找就能找到好多。

USER_AGENTS = [

'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60',

'Opera/8.0 (Windows NT 5.1; U; en)',

'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',

'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50',

'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',

'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10',

'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2',

'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',

'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',

'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16',

'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11',

'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER',

'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)',

'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0',

'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)',

'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36']

使用的时候,直接使用随机函数 random.choice() 来从列表中选择选择一个。 使用方法可以参考以下代码:

user_agent = random.choice(USER_AGENTS)proxy = random.choice(proxyList)url = ' https://blog.csdn.net/wenxuhonghe/article/details/85036674 '            headers = {    "Connection": "keep-alive",    "Cache-Control": "max-age=0",    "Upgrade-Insecure-Requests": "1",    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",    "Accept-Language": "zh-CN,zh;q=0.9",    "Cookie": ""    }


try:    # 构建一个Handler处理器对象,参数是一个字典类型,包括代理类型和 代理服务器 IP+PROT

httpproxy_handler = urllib.request.ProxyHandler({"http": proxy})    opener = urllib.request.build_opener(httpproxy_handler)

urllib.request.install_opener(opener)    request = urllib.request.Request(url,headers=headers)

request.add_header("User-Agent", user_agent)    response = urllib.request.urlopen(request)    html = response.read()

# 解析目标页面,提取相关信息

parse_data(html)

time.sleep(1)

except Exception as result:

print ("错误信息:%s"%(result))

864 202

上一篇:Python爬虫如何通过更换IP避开网站的反爬虫机制(一)

下一篇:什么是个人VPN

相关文章

旗下产品

软件IP代理 企业HTTP代理 开放HTTP代理 高速硬件IP代理
@ 2016 - 2024.猎鹰网安IP代理, All rights reserved. 鄂ICP备18017015号-4
禁止利用本站资源从事任何违反本国(地区)法律法规的活动
新闻中心 | 其他新闻 | 帮助文档