爬虫IP代理池代码记录

本文介绍了如何使用Python进行网络爬虫时,通过获取并使用免费的IP代理池来防止因频繁访问同一网站导致的IP被封锁问题。代码示例展示了从国内高匿代理网站抓取IP地址,并随机选择一个代理IP用于请求,以降低被封风险。
摘要由CSDN通过智能技术生成

使用python进行爬虫访问网站时,大部分时候需要当心IP访问过于频繁而被网站封锁

这个时候就需要使用一下IP代理池了
使用的是网上的免费IP网站:国内高匿代理
在这里插入图片描述

代码:

import requests
import time
import random
from lxml import etree

#  获取
def get_ip_list(headers, page):
    ip_list = []
    for i in range(int(page)):
        # 爬取免费的IP
        url = 'https://www.kuaidaili.com/free/inha/{}/'.format(i+1)
        # print("爬取网址为:", url)
        #获取代理IP地址
        web_data = requests.get(url, headers=headers)
        if web_data.status_code == 200:
            tree0 = etree.HTML(web_data.text)
            ip_lists = tree0.xpath('//table/tbody/tr/td[@data-title="IP"]/text()');
            port_lists = tree0.xpath('//table/tbody/tr/td[@data-title="PORT"]/text()')
            type_lists = tree0.xpath('//table/tbody/tr/td[@data-title="类型"]/text()')
            # print(ip_lists)
            # print(port_lists)
            for x,y in zip(ip_lists, port_lists):
                ip_list.append(x + ":" + y)
            time.sleep(3)  # 防止访问频率过快,被封
    # print(len(ip_list))
    return ip_list

#  组建随机IP地址
def get_random_ip(ip_list):
#获取代理IP地址
    proxy_list = []
    for ip in ip_list:
        proxy_list.append('http://' + ip)
    proxy_ip = random.choice(proxy_list)
    proxies = {'http': proxy_ip}
    return proxies

if __name__ == '__main__':
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
    }
    #获取代理IP地址
    ip_list = get_ip_list(headers=headers, page=3)
    print(ip_list)

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

空城机

有钱捧个钱场,没钱捧个人场

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

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

打赏作者

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

抵扣说明:

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

余额充值