rfgh

该脚本使用Python的requests和lxml库,通过for循环实现对网页的分页抓取,从指定网站获取免费代理IP,并通过请求百度验证其有效性。有效IP将被写入文本文件中,无效IP则打印出来。此脚本适用于需要大量代理IP的网络爬虫项目。
摘要由CSDN通过智能技术生成

脚本代码:
#!/user/bin/

-- coding:UTF-8 --

Author:Master

#导入模块
import requests
from lxml import etree

#for循环实现分页处理
for page in range(1,1000):
#请求地址
url = f’https://www.kuaidaili.com/free/inha/{page}/’
#UA伪装
header = {
“User-Agent”: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36”
}
#保存的文件名
name = ‘proxy_ip.txt’
#返回请求包
page_text = requests.get(url=url,headers=header).text
#构造了一个XPath解析对象并对HTML文本进行自动修正
tree = etree.HTML(page_text)
#使用xpath定位ip所在的tr标签并生成所有tr标签列表
tr_list = tree.xpath(’//*[@id=“list”]/table/tbody/tr’)
#遍历tr标签
for td in tr_list:
#定位ip内容
ip = td.xpath(’./td[1]/text()’)[0]
#定位端口内容
port = td.xpath(’./td[2]/text()’)[0]
#拼接完整的ip
all_ip = ip+’:’+port
#测试代理ip的有效性
try:
#request使用代理ip发送get请求测试代理有效性
requests.get(‘https://www.baidu.com/’, proxies={“http”: f"‘http://’+{all_ip}"})
except:
#输出无效代理ip
print(all_ip+‘代理无效!’)
else:
#代理ip有效存实现持久化存储
with open(name,‘a’,encoding=‘utf-8’) as fp:
fp.write(all_ip+’\n’)
#输出爬取完成页数
print(f’第{page}页爬取结束.’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值