python爬取免费代理并验证可用性
最近需要写个工具,需要大量的ip,又不想花钱买的话~就只能爬取ip代理站点上免费公布出来的代理ip咯~所以用了python写了一个。
脚本开始:
import requests
from lxml import etree
# 获取代理首页的代理
def get_proxy_list():
url = "https://www.testyuming.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的网址大家要去改一改,自动爬取后验证ip是否可用,默认访问百度主页,如果可以访问就返回True,不行就返回False!
1.本站资源可免登陆下载,扫码支付即可下载
2.本站先仅支持支付宝扫码支付,更多方式联系客服!
3.客服QQ:822674928
4.本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有!
5. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
好主题网 » python爬取免费代理并验证可用性
2.本站先仅支持支付宝扫码支付,更多方式联系客服!
3.客服QQ:822674928
4.本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有!
5. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
好主题网 » python爬取免费代理并验证可用性
常见问题FAQ
- 想做更多的模板?程序修改二开?
- 请联系我们本站客服QQ:822674928
QQ联系不上发送邮箱[email protected]。
- 资源链接失效?密码不对?
- 免费下载或者VIP会员专享资源能否直接商用?