IP代理和用户代理结合使用

2年前 (2020-01-14) 399次浏览 已收录 7个评论

对付一些简单的反爬机制, IP代理和用户代理差不多能很好的解决规模不大的网站. 如果你有持久的IP, 你完全可以把下面的代码封装一下, 以后可以直接使用

import urllib.request
import random
import ssl
uaplls=[#用户代理池
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
]
ssl._create_default_https_context = ssl._create_unverified_context
def ip(uapools):
    thisua = random.choice(uapools)
    print("当前使用" + thisua)
    headers = ("User-Agent", thisua)
    thisip=urllib.request.urlopen("http://tpv.daxiangdaili.com/ip/?tid=559754555433921&num=1&protocol=https").read().decode("utf-8","ignore")
    print("当前使用的IP:"+thisip)
    ip = urllib.request.ProxyHandler({"https": thisip})#获取IP
    opener = urllib.request.build_opener(ip, urllib.request.HTTPHandler)
    opener.addheaders = [headers]
    urllib.request.install_opener(opener)
url="https://www.woyaogexing.com/touxiang/"
for i in range(1,100):
    try:
        ip(uaplls)
        data=urllib.request.urlopen(url).read().decode("gbk","ignore")
        print(len(data))
    except Exception as err:
        print(err)

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:IP代理和用户代理结合使用
喜欢 (0)

您必须 登录 才能发表评论!

(7)个小伙伴在吐槽
  1. 奥利给
    2020-03-27 12:57
  2. 我也是学计算机的
    2020-03-27 14:14
  3. 我也是学计算机的
    2020-03-28 17:30
  4. 我也是学计算机的
    2020-05-26 09:17
  5. 记住这个网站了
    2020-05-26 09:44
  6. 不错
    2020-05-26 10:09
  7. good厉害了
    2020-05-26 10:31