pip 代理_重新造个轮子 | 免费代理抓取包

69d87aa47607204fc6c52798c861c53c.png
作者:Charles
微信公众号: Charles的皮卡丘
原文链接: https:// mp.weixin.qq.com/s/OdBr 2KhBDzmBI1GPFQteGQ

简单重构了一波之前自己开源的一个小项目,在这里重新分享一波。

安装

0. 项目地址:

https://github.com/CharlesPikachu/FreeProxy(欢迎stars,后续会考虑更好地完善该项目。)

1. pip安装

在终端运行以下命令即可:

pip install git+https://github.com/CharlesPikachu/FreeProxy.git@master

效果如下:

2847134e50d8c82b5bddc30d22d17f00.png

2. 运行setup.py安装

到项目地址下载所需的文件:

580e3dff0dcf849a980767527b8af368.png

下载后解压文件,在终端运行如下命令即可:

python setup.py install

项目简介

利用requests+正则表达式爬取提供免费代理的网站上发布的最新免费代理数据,以便后续用于构建免费的爬虫代理IP池。相比于之前的版本,我删除了一些代理质量较低的代理数据源网站,并添加了一些网评代理质量比较高的代理数据源网站(部分需FQ访问,所以如果你不能FQ,有些数据源网站是无法访问的,也就是说抓取不了这部分数据了。)目前代理数据源网站包括:

  • 西刺代理
  • proxylistplus
  • proxylist
  • jiangxianli
  • IP海
  • ip3366
  • gatherproxy
  • cn-proxy

如果有什么提供高质量免费代理的网站被我遗漏了,你可以在文章下方留言,我会在后续版本中添加这些代理数据源网站进去。

使用方式

包导入,以及实现免费代理抓取:

类初始化参数:

Args:
  --host: 验证代理是否可以请求host(默认为http://www.baidu.com/)
  --headers: 验证host时的请求头(默认使用Chrome User-Agent)
  --method: 验证host时的请求类型(GET/POST)
  --post_data: POST验证时提交的data(默认为{})
  --timeout: 代理最大延迟(默认为1s)
  --proxy_type: http/https, 代理类型(默认为http)

类.getProxy方法参数:

Args:
  --num_proxies: 需要获取的代理数量(默认为1)
  --max_tries: 代理数据源网站最大请求次数(默认为5)

实例

1. 单线程

from FreeProxy import ProxyTool
pt = ProxyTool.ProxyTool()
proxies = pt.getProxy(num_proxies=2, max_tries=5)
print(proxies)

2. 多线程

import time
import threading
from FreeProxy import ProxyTool


PROXIES = []
pt = ProxyTool.ProxyTool()
num_threadings = 3


def getProxy(num, max_tries):
  global PROXIES
  PROXIES += pt.getProxy(num, max_tries)


for i in range(num_threadings):
  t = threading.Thread(target=getProxy, args=(1, 5))
  time.sleep(0.1)
  t.start()
  t.join()
print(PROXIES)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值