网络编程
位置:首页>> 网络编程>> Python编程>> python爬取免费代理并验证代理是否可用

python爬取免费代理并验证代理是否可用

作者:小军递  发布时间:2021-12-24 20:02:48 

标签:python,爬取免费代理,验证代理

分享一个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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com