• 售前

  • 售后

热门帖子
入门百科

python爬虫使用署理池更换IP的方法步骤

[复制链接]
干将发硎鞘 显示全部楼层 发表于 2021-10-25 19:45:34 |阅读模式 打印 上一主题 下一主题
0. 前言


周日在爬一个国外网站的时间,发现用协程并发请求,而且请求次数太快的时间,会出现对方把我的服务器IP封掉的环境。于是网上找了一下开源的python署理池,这里选择的是star数比较多的proxy_pool
1. 安装环境

  1. # 安装python虚拟环境, python环境最好为python3.6,再往上的话,安装依赖时会报错
  2. sudo apt update
  3. sudo apt install python3.6
  4. pip3 install virtualenv
  5. virtualenv venv --python=python3.6
  6. source venv/bin/activate
  7. # 安装redis
  8. sudo apt install redis-server
  9. # 启动redis server
  10. redis-server
复制代码
2. 安装依赖

  1. git clone https://github.com/jhao104/proxy_pool.git
  2. cd proxy_pool
  3. pip install -r requirements.txt
复制代码
3. 修改配置文件

  1. # 修改setting.py
  2. # 配置API服务
  3. HOST = "0.0.0.0"    # IP
  4. PORT = 5010     # 监听端口
  5. # 配置数据库
  6. # 以下为三个示例,根据redis的配置,选择其中一种即可
  7. # 一般启动redis时如果没有配置文件,那么选择第一种即可
  8. # 1. Redis IP: 127.0.0.1 Port: 6379
  9. DB_CONN = 'redis://@127.0.0.1:6379'
  10. # 2. Redis IP: 127.0.0.1 Port: 6379 Password: 123456
  11. DB_CONN = 'redis://:123456@127.0.0.1:6379'
  12. # 3. Redis IP: 127.0.0.1 Port: 6379 Password: 123456 DB: 15
  13. DB_CONN = 'redis://:123456@127.0.0.1:6379/15'
  14. # 配置 ProxyFetcher
  15. PROXY_FETCHER = [
  16. "freeProxy01",  # 这里是启用的代理抓取方法名,所有fetch方法位于fetcher/proxyFetcher.py
  17. "freeProxy02",
  18. # ....
  19. ]
复制代码
4. 启动

  1. # 可以用tmux开三个窗口
  2. # 启动调度程序
  3. python proxyPool.py schedule
  4. # 启动webApi服务
  5. python proxyPool.py server
复制代码
5. 测试
  1. import requests
  2. def get_proxy():
  3. return requests.get("http://127.0.0.1:5010/get/").json()
  4. def delete_proxy(proxy):
  5. requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))
  6. # your spider code
  7. def getHtml():
  8. # ....
  9. retry_count = 5
  10. proxy = get_proxy().get("proxy")
  11. while retry_count > 0:
  12.   try:
  13.    html = requests.get('http://www.example.com', proxies={"http": "http://{}".format(proxy)})
  14.    # 使用代理访问
  15.    return html
  16.   except Exception:
  17.    retry_count -= 1
  18. # 删除代理池中代理
  19. delete_proxy(proxy)
  20. return None
复制代码

更多的用法和文档请参考:document 和 https://github.com/jhao104/proxy_pool
到此这篇关于python爬虫使用署理池更换IP的方法步骤的文章就介绍到这了,更多相干python 署理池更换IP内容请搜刮草根技能分享从前的文章或继承欣赏下面的相干文章渴望各人以后多多支持草根技能分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作