Chinaunix首页 | 论坛 | 博客
  • 博客访问: 185792
  • 博文数量: 83
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 846
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-27 14:41
个人简介

宁为玉碎,不为瓦全

文章分类
文章存档

2024年(27)

2023年(28)

2022年(17)

2021年(10)

2019年(1)

我的朋友

分类: 云计算

2021-05-26 16:16:00

在我们日常数据采集过程中肯定会遇到这样的一些问题,比如我们的程序在使用代理过程中不支持用户认证模式、我们需要对一些数据做缓存或者需要过滤一些数据。那么我们可以通过搭建squid,然后设置squid的上联代理为爬虫代理,来实现上面的需求。如今环绕在我们身边的热点话题就是你打疫苗了吗?那么我们今天就发挥python的功底,获取一些关于世界各国接种疫苗的最新信息。

这个网站记录了各国的接种数据信息,我们就通过来了解下最新的各国接种疫苗信息。

我们可以用Proxy-Tunnel来控制代理IP,在HTTPS的情况下,还可以直接通过TCP链接断开的方式来控制代理IP,更多例子可以参考

完整代码如下:

#! -*- encoding:utf-8 -*- import requests import random import requests.adapters  # 要访问的目标页面 targetUrlList = [  "", ]  # 代理服务器(产品官网 ) proxyHost = "localhost" proxyPort = "3128"  proxyMeta = "http://%(host)s:%(port)s" % {  "host": proxyHost,  "port": proxyPort,  }  # 设置 http和https访问都是用HTTP代理 proxies = {  "http": proxyMeta,  "https": proxyMeta,  }  #  设置IP切换头 tunnel = random.randint(1, 10000) headers = {"Proxy-Tunnel": str(tunnel)}  class HTTPAdapter(requests.adapters.HTTPAdapter):  def proxy_headers(self, proxy):  headers = super(HTTPAdapter, self).proxy_headers(proxy)  if hasattr(self, 'tunnel'):  headers['Proxy-Tunnel'] = self.tunnel  return headers  # 访问三次网站,使用相同的tunnel标志,均能够保持相同的外网IP for i in range(3):  s = requests.session()  a = HTTPAdapter()   #  设置IP切换头  a.tunnel = tunnel  s.mount('https://', a)   for url in targetUrlList:  r = s.get(url, proxies=proxies)  print r.text
阅读(804) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~