基于requests模块的代理

1.什么是代理?

​ 代理:将网络请求发送给代理服务器,通过代理服务器做中介,将请求转发给目标服务器并将响应返回,从而完成网络通信。

2.为什么使用代理?

​ 使用爬虫抓取批量资源时,在短时间内会对服务器发起高频请求,服务器会判定这些高频请求不是“普通访客”发起的,从而拒绝该IP的发起的请求,但是我们可以更换IP(使用代理IP)继续进行访问

3.代理的基础知识
  • ​ 代理的类型:http和https 根据要访问网页使用的协议类型进行选择
  • ​ 匿名度:分为透明、匿名和高匿

​ 透明:服务器知道使用了代理,而且知道真实的IP

​ 匿名:服务器知道使用了代理,而且但不知道真实的IP

​ 高匿:服务器不知道使用了代理,更不知道真实的IP

4.requests中的proxies参数
import requests
import random
requests.get(url = target_url,proxies = {'http':''163.125.114.117:8118''},headers =...)
#防止IP被禁,可以使用代理池
ht_proxy = [
    {'http':'163.125.114.117:8118'},
    {'http':'183.129.244.16:11063'},
    {'http':':219.159.38.199:56210'}]
hts_proxy = [
    {'https':'163.125.114.117:8118'},
    {'https':'183.129.244.16:11063'},
    {'https':':219.159.38.199:56210'}]
#使用User-Agent进行伪装
header_list = [
    {  # 谷歌
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"},
      # 火狐
    {"user-agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"},
    #  遨游
    {"user-agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)"},
]
requests.get(url = target_url,proxies = random.choice(ht_proxy),
             headers =  random.choice(header_list))

#还可使用随机生成user-agent的第三方库(先安装)
from fake_useragent import UserAgent
ua = UserAgent().random
headers = {
    'User-Agent':ua
}

#随机产生UA,如果报错则可以添加如下参数:
#ua = UserAgent(verify_ssl=False,use_cache_server=False).random

#禁用服务器缓存:
#ua = UserAgent(use_cache_server=False)
#不缓存数据:
#ua = UserAgent(cache=False)
#忽略ssl验证:
#ua = UserAgent(verify_ssl=False)
上一篇:js判断当前浏览设备


下一篇:java判断当前设备