当前位置:首页 教程 编程教程
全部
系统教程
软件教程
CMS教程
编程教程

软件简介
去评论 去报错

前言:

在进行大规模数据采集时,我们可能会因为频繁访问同一网站而被屏蔽,导致无法正常爬取所需的数据。为了解决这个问题,我们可以使用代理IP来隐藏我们的真实IP地址,以减少被屏蔽的概率。本文将介绍Python3中使用requests库与代理IP配合完成网络数据采集的方法,并提供源码分享。

实现方法: Python3提供了非常方便的requests库,用于进行HTTP请求和处理响应。我们可以通过设置proxies参数来支持对网络请求的代理服务器进行配置。以下是使用代理IP请求网络数据的代码示例:

import requests
# 设置代理IP
proxies = {
  'http': 'http://127.0.0.1:8080',
  'https': 'https://127.0.0.1:8080',
}
# 发起HTTP请求
response = requests.get('https://www.example.com', proxies=proxies)
# 处理响应结果
if response.status_code == 200:
    res_text = response.text
    print(res_text)
else:
    print('请求失败')

在上面的代码示例中,我们首先定义了一个代理IP字典proxies,包含http和https两个协议的代理地址。然后,我们使用requests库的get方法发起HTTP请求,并通过proxies参数指定使用代理IP进行连接。最后,当响应状态码为200时,我们提取出相应结果并进行处理,否则输出“请求失败”的信息。

需要注意的是,代理IP地址和端口会根据实际情况而变化,因此代码中的这些参数需要根据具体场景进行修改才能正常工作。

import requests
def get_data_with_proxy(url, proxy):
    """
    使用代理IP获取数据
    :param url: 请求的URL
    :param proxy: 代理IP地址(格式为"ip:port")
    :return: 返回请求得到的数据
    """
    proxies = {
        "http": f"http://{proxy}",
        "https": f"https://{proxy}"
    }
    try:
        response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'}, proxies=proxies, timeout=10)
        if response and response.status_code == 200:
            return response.text
    except Exception as e:
        print(f'[WARN] {e}')
        return ''
if __name__ == '__main__':
    url = 'https://www.example.com'
    proxy_address = '127.0.0.1:8080'
    html_content = get_data_with_proxy(url, proxy_address)
    if html_content != '':
        print(html_content)

在本例中,我们定义了一个名为get_data_with_proxy的函数,其中url参数用于指定请求网站的URL地址,proxy参数指定代理IP地址。该函数返回发送请求后从响应中获取到的HTML内容或空字符串。

由于代理IP的连接稳定性受网络环境合适位置等多种因素影响,对于一些不稳定的代理IP是否可用需要进行判断和识别。而为了增加代理IP的可用性,我们还通过设置请求超时时间和User-Agent等参数来提高请求的成功率。

【代理IP怎么获得?】

代理IP的获取方法有以下几种:

  1. 免费获得代理IP地址:可以通过爬虫程序、代理IP软件或者在线免费代理IP网站获取代理IP。但是免费代理IP的缺点是需要验证获得的IP,提取起来很麻烦,很费时。

  2. 购买付费代理IP:可以在网上找到付费代理IP,相对免费,付费代理IP池有专人维护,有技术支持,质量好,速度快,能很大程度的提高工作效率。

  3. 自己搭建代理IP池:可以使用自己的电脑搭建代理IP池,但是需要注意,自己的电脑可能需要不间断地运行,而且可能会存在性能问题。

总之,获取代理IP的方法多种多样,可以根据自己的需求和实际情况选择合适的方法。

获取代理IP的代码例子:

def getProxy():
    while True:
        try:
            # API URL
            url = 'http://***'
            # 白名单URL
            white = 'http://***?white='
            r = requests.get(url).json()
            if r['code'] == 0:
                ip = "{}:{}".format(r['data'][0]['ip'], r['data'][0]['port'])
                try:
                    proxies = {
                        "http": "{}".format(ip),
                        "https": "{}".format(ip)
                    }
                    # “http://mini.browser.360.cn/area/getlocation”是一个查询IP的接口
                    # 请求成功则返回获取到的代理IP
                    # 失败则延时2秒并重试
                    requests.get("http://mini.browser.360.cn/area/getlocation",verify=False,proxies=proxies,timeout=3)
                    return ip
                except:
                    time.sleep(2)
                    continue
            elif '白名单' in r['msg']:
                r_host = re.search("(d{1,3}.d{1,3}.d{1,3}.d{1,3})", str(r['msg'])).group(0)
                requests.get(white + r_host, verify=False).text
                continue
            elif '请求太频繁' in r['msg']:
                time.sleep(2)
                continue
        except:
            time.sleep(2)
            continue

以上代理实现了对代理IP api接口的请求,但在初始使用中需要根据具体API返回的数据格式进行修改才能正常使用。

由于代理IP的连接稳定性受网络环境合适位置等多种因素影响,对于一些不稳定的代理IP是否可用需要进行判断和识别。而为了增加代理IP的可用性,我们还通过设置请求超时时间和User-Agent等参数来提高请求的成功率。

下载地址

普通下载

点击直接低速下载,因需宽带成本高速下载需扫码

本地低速下载

网盘下载

通过不限速阿里、蓝奏网盘高速下载(部分需要扫码)

站长声明:

1、本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。

2、如遇到资源无法下载请 点击报错,我们将尽快纠错。

3、如有侵犯您的版权,请联系我们,我们会尽快处理,并诚恳的向你道歉!

注意:如.zip压缩包无法打开请将后缀修改成.exe或使用其它压缩软件尝试。

文章评论

用户头像
匿名网友
发表评论
昵称

评论记录:

未查询到任何数据!

热门软件

pyqt5,6之图形界面填坑之注册全局快捷键实现主窗口隐藏显示切换遇到的问题

详细介绍pyqt5、6图形界面开发时通过注册全局快捷键实现主窗口隐藏显示切换的方法及遇到的问题及问题的解决方法。

PyQt5快速开发与实战电子书(清晰有目录书签无水印)高清pdf免费下载

本书既是介绍PyQt5的快速入门书籍,也是介绍PyQt5实战应用的书籍。PyQt5是对Qt所有类的Python封装,即可以利用Qt的强大功能,也可以利用Python丰富的生态,同时能够结合Python简洁的语法进行操作,其结果就是使用PyQt5可以高效简单地开发出自己想要的程序

Python面向对象编程指南 Steven F. Lott(洛特)pdf扫描版免费下载

本书致力于深入讲解Python语言的高级特性,通过丰富、强大的代码示例为读者循序渐进地讲解如何编写高质量的Python代码。本书可谓是成就Python编程高手的必读之选。

web开发教程 PHP、MySQL与JavaScript学习手册 第4版 免费PDF电子书下载

《PHP、MySQL与JavaScript学习手册 第4版》是一个适用于PHP及Web开发初学者的入门教材。本书全面深入探讨了PHP和MySQL以及Javascript语言的学习指南,旨在让读者能够轻松上手基础Web应用程序开发和编程技术

HTML5与CSS3基础教程(第8版) :免费PDF电子书下载,快速掌握HTML5与CSS3核心技术

《HTML5与CSS3基础教程(第8版)》中,我们将从浅入深地全面了解HTML5和CSS3。首先,我们将学习HTML5的基础知识,包括标记语言、标记属性、文本格式化、图像、超链接等。

猜你想看

《Selenium 2自动化测试实战 基于Python语言》 带索引书签目录PDF电子书 下载

本书分为12个章节,第1章是自动化测试相关基础知识的介绍;第2章到第10章是本书的重点,循序渐进地介绍了自动化测试所用到的技术;第11章通过一个具体的项目综合运用了前面章节所介绍的技术与技巧

仿百度本地惠生活jquery+js实现分站全国地区选择 非表单多级地址联动查询选择(附全国地区数据)

本文介绍通过js+jquery实现全国地区分站的功能,能够让用户方便快捷地选择所在地区,并且能够根据用户的选择进行相应的查询和展示。

PYTHON网络编程 第3版高清PDF电子书免费下载

本书针对想要深入理解使用Python来解决网络相关问题或是构建网络应用程序的技术人员,结合实例讲解了网络协议、网络数据及错误、电子邮件

Python进阶教程《Intermediate Python》中文译本电子书下载

《Python进阶》是《Intermediate Python》的中文译本, 谨以此献给进击的 Python 和 Python 程序员们!

PHP+MySQL动态网站开发从入门到精通.pdf

《PHP+MySQL动态网站开发从入门到精通》是张工厂所著的一本详细介绍如何使用PHP和MySQL进行动态网站开发的书籍。本书从入门到精通,适合初、中级Web开发人员阅读。本书不仅介绍了PHP和MySQL的基础知识,还

推荐!《Web编程基础:HTML5、CSS3、JavaScript (第2版)》完整版PDF下载免费看

《Web编程基础:HTML5、CSS3、JavaScript (第2版)》可以免费下载PDF电子书。通过电子书的形式,读者可以在计算机、平板电脑、手机等设备上自由阅读,节省纸质书籍的成本。

Web前端开发HTML5/CSS3/jQuery/AJAX从学到用完美实践 PDF完整版下载

《Web前端开发HTML5/CSS3/jQuery/AJAX从学到用完美实践》是一本全面介绍Web前端开发技术的书籍,涵盖了HTML5、CSS3、jQuery和AJAX等技术,旨在帮助读者从学到用,提高Web前端开发实践能力。

计算机组成原理_PDF扫描格式电子版免费下载

《计算机科学丛书:计算机组成原理》其分三一部分。首位一部分从计算机组成和构造的相关定义、计算机技术过程及储存程序流程电子计算机刚开始说起,详细介绍了计算机软件的构成和系统架构的基本要素

最新标签