码迷,mamicode.com
首页 > 其他好文 > 详细

基于requests模块的代理

时间:2019-09-09 12:59:16      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:head   转发   透明   网络请求   ssl   lse   sts   时间   https   

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模块的代理

标签:head   转发   透明   网络请求   ssl   lse   sts   时间   https   

原文地址:https://www.cnblogs.com/notfind/p/11491070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!