python爬取免费代理并验证代理是否可用
作者:小军递 时间:2021-12-24 20:02:48
分享一个python脚本,使用代理ip来访问网页,方便抓取数据什么的~并自动验证ip是否可以用
什么情况下会用到 * ?比如你要抓取一个网站数据,该网站有100万条内容,他们做了IP限制,每个IP每小时只能抓1000条,如果单个IP去抓因为受限,需要40天左右才能采集完,如果用了 * ,不停的切换IP,就可以突破每小时1000条的频率限制,从而提高效率。
脚本开始:
import requests
from lxml import etree
# 获取快代理首页的代理
def get_proxy_list():
url = "https://www.jxmtjt.com/"
payload = {}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
'Accept': 'application/json, text/javascript, */*; q=0.01',
}
response = requests.request("GET", url, headers=headers, data=payload)
res = []
_ = etree.HTML(response.text)
type_dct = {
"HTTP": "http://",
"HTTPS": "https://"
}
data_list = _.xpath("//tbody/tr")
for data in data_list:
ip = data.xpath("./td[1]/text()")[0]
port = data.xpath("./td[2]/text()")[0]
type = data.xpath("./td[4]/text()")[0]
res.append(type_dct[type] + ip + ':' + port)
return res
# 测试代理
def check(proxy):
href = 'http://www.baidu.com/'
if 'https' in proxy:
proxies = {'https': proxy}
else:
proxies = {'http': proxy}
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4396.0 Safari/537.36'
}
try:
r = requests.get(href, proxies=proxies, timeout=5, headers=headers)
if r.status_code == 200:
return True
except:
return False
if __name__ == '__main__':
proxy_list = get_proxy_list()
print(proxy_list)
for p in proxy_list:
print(p, check(p))
大家代码复制后,把获取代理ip的网址改一改就可以用了,代码我一直在用,大家也可以cnblogs,百度搜索一下有没有免费的代理ip获取网址~
来源:https://www.cnblogs.com/xiaojuntest/p/15771517.html
标签:python,爬取免费代理,验证代理
0
投稿
猜你喜欢
用Python写一段用户登录的程序代码
2022-09-29 08:40:44
django轻松使用富文本编辑器CKEditor的方法
2022-01-21 17:11:57
对python读取CT医学图像的实例详解
2023-12-29 12:36:37
SQLServer2000 报1053错误(服务没有及时响应或控制请求)的解决方法
2024-01-23 10:40:47
Python urllib3软件包的使用说明
2023-08-04 13:51:31
你需要理解的关于MySQL的锁知识
2024-01-21 05:17:11
asp_数据库操作封装
2010-04-03 21:00:00
sqlserver中将varchar类型转换为int型再进行排序的方法
2012-07-11 15:34:41
Golang之casbin权限管理的实现
2024-05-09 14:54:28
SQL Server数据库于应用程序的关系
2010-07-26 14:21:00
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022-02-17 09:35:32
Python async模块使用方法杂谈
2023-12-12 14:46:36
FckEditor配置手册中文教程详细说明
2010-02-28 12:37:00
python 绘图模块matplotlib的使用简介
2023-08-09 19:09:01
python opencv读mp4视频的实例
2022-04-13 00:32:11
Python搭建代理IP池实现接口设置与整体调度
2023-05-25 11:52:03
python base64库给用户名或密码加密的流程
2021-01-30 16:30:39
Python3列表删除的三种方式实现
2021-03-26 17:55:55
Python+drawpad实现CPU监控小程序
2022-05-30 19:54:38
MySQL的双机热备份安装和配置
2012-01-05 19:00:58