本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2021-03(4)

2021-04(4)

通过搭建squid实现爬虫需求

发布于2021-05-26 16:23     阅读(172)     评论(0)     点赞(0)     收藏(0)



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

这个网站记录了各国的接种数据信息,我们就通过https://ourworldindata.org/covid-vaccinations来了解下最新的各国接种疫苗信息。

我们可以用Proxy-Tunnel来控制代理IP,在HTTPS的情况下,还可以直接通过TCP链接断开的方式来控制代理IP,更多例子可以参考 https://www.16yun.cn/help/ss_demo/

完整代码如下:

#! -*- encoding:utf-8 -*- import requests import random import requests.adapters  # 要访问的目标页面 targetUrlList = [  "https://ourworldindata.org/covid-vaccinations", ]  # 代理服务器(产品官网 www.16yun.cn) 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






所属网站分类: 技术文章 > 博客

作者:yiniuyun

链接:https://www.pythonheidong.com/blog/article/977192/94ee7752d4de049f76cf/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)