python脚本 | 从某网站批量获取免费代理IP列表

原理分析:

  1. 分析下网站的html结构
  2. 用request获取网页内容,自动翻页
  3. 用xpath获取到每个列表的内容
  4. 存入到txt中备用。

网页结构:

打开网页后查看IP列、端口列的元素路径

 代码实现:

# CopyRight@ 【一番码客】 - 效率软件推荐

import requests
from lxml import etree

def get_url(page):
    '''
    从快代理网站获取有效的免费代理ip列表
    '''
    proxy_fd = open("ip-proxy.txt", 'a+', encoding='utf-8')
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0",
        "Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
        "Accept-Encoding":"gzip, deflate",
        "Connection":"keep-alive"
    }
    url_str ='https://www.kuaidaili.com/free/inha/'+ str(page)
    # url_str ='https://www.kuaidaili.com/free/intr/'+ str(page)
    html = requests.get(url=url_str, timeout=20, headers = headers, verify=False).text   
    html = etree.HTML(html)
    trs = html.xpath('//*[@id="list"]/table/tbody/tr')
    # print(trs)
    for tr in trs:
        ip = tr.xpath('./td[@data-title="IP"]/text()')[0]
        port = tr.xpath('./td[@data-title="PORT"]/text()')[0]
        print(str(ip) + ':' + str(port) + ',')

        url ='http://{}:{}'.format(ip,port)
        try:
            result = requests.get(url, timeout=2, headers = headers, verify=False)
            print(url +" 可用")
            proxy_fd.write('\'' + '{}:{}'.format(ip, port) + '\',\n')
        except:
            print(url +' 不可用')

    proxy_fd.close()

for i in range(100, 200):
    get_url(i)

结果展示:

可以看到获取的数据已经在文本文档中了,拿来用就是,当然免费的不太稳定,好在免费。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一番码客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值