欢迎来到虫虫开发者社区 — 百万工程师技术资源

python爬虫获取大量免费有效代理ip--有效防止ip被封

源码 18 K 0 次下载

资源详细信息

文件格式
DOCX
文件大小
18 K
资源分类
上传者
发布时间
下载统计
0
所需积分
2 积分

python爬虫获取大量免费有效代理ip--有效防止ip被封 - 资源详细说明

以后再也不用担心写爬虫ip被封,不用担心没钱买代理ip的烦恼了
在使用python写爬虫时候,你会遇到所要爬取的网站有反爬取技术比如用同一个IP反复爬取同一个网页,很可能会被封。如何有效的解决这个问题呢?我们可以使用代理ip,来设置代理ip池。

现在教大家一个可获取大量免费有效快速的代理ip方法,我们访问西刺免费代理ip网址
这里面提供了许多代理ip,但是我们尝试过后会发现并不是每一个都是有效的。所以我们现在所要做的就是从里面提供的筛选出有效快速稳定的ip。

以下介绍的免费获取代理ip池的方法:
优点:免费、数量多、有效、速度快
缺点:需要定期筛选

主要思路:

从网址上爬取ip地址并存储
验证ip是否能使用-(随机访问网址判断响应码)
格式化ip地址
代码如下:

1.导入包

import requests
from lxml import etree
import time
1
2
3
2.获取西刺免费代理ip网址上的代理ip

def get_all_proxy():
    url = 'http://www.xicidaili.com/nn/1'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
    }
    response = requests.get(url, headers=headers)
    html_ele = etree.HTML(response.text)
    ip_eles = html_ele.xpath('//table[@id="ip_list"]/tr/td[2]/text()')
    port_ele = html_ele.xpath('//table[@id="ip_list"]/tr/td[3]/text()')
    proxy_list = []
    for i in range(0,len(ip_eles)):
        proxy_str = 'http://' + ip_eles[i] + ':' + port_ele[i]
        proxy_list.append(proxy_str)
    return proxy_list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
3.验证获取的ip

def check_all_proxy(proxy_list):
    valid_proxy_list = []
    for proxy in proxy_list:
        url = 'http://www.baidu.com/'
        proxy_dict = {
            'http': proxy
        }
        try:
            start_time = time.time()
            response = requests.get(url, proxies=proxy_dict, timeout=5)
            if response.status_code == 200:
                end_time = time.time()
                print('代理可用:' + proxy)
                print('耗时:' + str(end_time - start_time))
                valid_proxy_list.append(proxy)
            else:
                print('代理超时')
        except:
            print('代理不可用--------------->'+proxy)
    return valid_proxy_list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4.输出获取ip池

if __name__ == '__main__':
    proxy_list = get_all_proxy()
    valid_proxy_list = check_all_proxy(proxy_list)
    print('--'*30)
    print(valid_proxy_list)
1
2
3
4
5
技术能力有限欢迎提出意见,保证积极向上不断学习
————————————————
版权声明:本文为CSDN博主「彬小二」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39884947/article/details/86609930

立即下载 python爬虫获取大量免费有效代理ip--有效防止ip被封

提示:下载后请用压缩软件解压,推荐使用 WinRAR 或 7-Zip

下载说明与使用指南

下载说明

  • 本资源需消耗 2积分
  • 24小时内重复下载不扣分
  • 支持断点续传功能
  • 资源永久有效可用

使用说明

  • 下载后使用解压软件解压
  • 推荐使用 WinRAR 或 7-Zip
  • 如有密码请查看资源说明
  • 解压后即可正常使用

积分获取方式

  • 上传优质资源获得积分
  • 每日签到免费领取积分
  • 邀请好友注册获得奖励
  • 查看详情 →

相关技术标签

点击标签浏览更多相关源码资源:

相关源码资源推荐