基于requests模块的代理

Posted notfind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于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)

以上是关于基于requests模块的代理的主要内容,如果未能解决你的问题,请参考以下文章

25-3 requests模块的cookie和代理操作

爬虫之requests

requests第一弹

requests应用

网络爬虫之requests模块

Python爬虫_requests模块