python免费IP代理,简单采集一下康康能不能用~

嗨害大家好鸭!我是小熊猫❤

最近疫情有一点严重

在家不知道整点啥好

整个免费的IP代理康康好用不好用

请添加图片描述


基本开发环境

  • Python 3.6
  • Pycharm

相关模块的使用

import requests  # 第三方模块
import parsel
import time  # 时间模块

安装Python并添加到环境变量,pip安装需要的相关模块即可。

请添加图片描述

一、确定目标需求

请添加图片描述

获取代理IP地址,端口然后对IP进行检测

请添加图片描述


二、网站数据分析

网站是静态网页,是可以直接获取数据的。

请添加图片描述
根据re、xpath或者css选择器 都是可以提取数据的,

还是比较简单的。

爬取IP主要是因为在使用爬虫频繁抓取数据的时候,

某些网站是比较容易被封IP的。

虽然网站有很多关于免费的IP代理可以使用,但是基本上都是用不了的。

请添加图片描述


完整代码❤

import requests  # 第三方模块
import parsel
import time  # 时间模块


def check_ip(proxies_list):
    """检测代理ip的可用性"""

    use_proxy = []
    for ip in proxies_list:
        try:
            response = requests.get(url='https://www.baidu.com', proxies=ip, timeout=2)
            if response.status_code == 200:
                use_proxy.append(ip)
        except Exception as e:
            print('当前代理ip: ', ip, '请求超时, 检测不合格!!!')
        else:
            print('当前代理ip: ', ip, '检测通过')

    return use_proxy


proxy_list = []

for page in range(1, 11):
    time.sleep(0.5)
    print(f'==================正在抓取第{page}页数据================')
    # 1.确定数据所在地址<url>(分析网页性质<静态网页\动态网页>)
    url = f'http://www.ip3366.net/?stype=1&page={page}'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}

    # 2.发送网络请求
    response = requests.get(url=url, headers=headers)
    html_data = response.text  # str
    # print(html_data)

    # 3.解析数据
    # 3.1 转换数据类型
    selector = parsel.Selector(html_data)
    # 3.2 数据提取
    trs = selector.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')  # tr

    """
    # 代理ip的结构
        proxies_dict = {
            "http": "http://" + ip:端口,
            "https": "http://" + ip:端口,
        }
    """

    for tr in trs:
        ip_num = tr.xpath('./td[1]/text()').get()
        ip_port = tr.xpath('./td[2]/text()').get()
        # print(ip_num, ip_port)

        ip_proxy = ip_num + ':' + ip_port
        # print(ip_proxy)

        proxies_dict = {
            'http': "http://" + ip_proxy,
            'https': "https://" + ip_proxy
        }

        # 4.数据的保存
        proxy_list.append(proxies_dict)
        print('保存成功:', proxies_dict)

print(proxy_list)
print('获取到的代理ip数量: ', len(proxy_list))

print('============================正在检测代理===================================')
can_use = check_ip(proxy_list)
print('可用代理:', can_use)
print('可用代理数量:', len(can_use))

请添加图片描述
爬取了100IP代理,最终可以使用的就只有一个

大家自己选择性使用嗷~

今天的文章就是这样啦~

有啥问题可以点击文末名片~

我是小熊猫,咱下篇文章再见啦(✿◡‿◡)

请添加图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值