
数据采集不可或缺的技巧:Python3 requests使用代理IP请求网络数据源码分享
软件简介
去评论
去报错
前言:
在进行大规模数据采集时,我们可能会因为频繁访问同一网站而被屏蔽,导致无法正常爬取所需的数据。为了解决这个问题,我们可以使用代理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的获取方法有以下几种:
免费获得代理IP地址:可以通过爬虫程序、代理IP软件或者在线免费代理IP网站获取代理IP。但是免费代理IP的缺点是需要验证获得的IP,提取起来很麻烦,很费时。
购买付费代理IP:可以在网上找到付费代理IP,相对免费,付费代理IP池有专人维护,有技术支持,质量好,速度快,能很大程度的提高工作效率。
自己搭建代理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图形界面开发时通过注册全局快捷键实现主窗口隐藏显示切换的方法及遇到的问题及问题的解决方法。
web开发教程 PHP、MySQL与JavaScript学习手册 第4版 免费PDF电子书下载
《PHP、MySQL与JavaScript学习手册 第4版》是一个适用于PHP及Web开发初学者的入门教材。本书全面深入探讨了PHP和MySQL以及Javascript语言的学习指南,旨在让读者能够轻松上手基础Web应用程序开发和编程技术
Python面向对象编程指南 Steven F. Lott(洛特)pdf扫描版免费下载
本书致力于深入讲解Python语言的高级特性,通过丰富、强大的代码示例为读者循序渐进地讲解如何编写高质量的Python代码。本书可谓是成就Python编程高手的必读之选。
PyQt5快速开发与实战电子书(清晰有目录书签无水印)高清pdf免费下载
本书既是介绍PyQt5的快速入门书籍,也是介绍PyQt5实战应用的书籍。PyQt5是对Qt所有类的Python封装,即可以利用Qt的强大功能,也可以利用Python丰富的生态,同时能够结合Python简洁的语法进行操作,其结果就是使用PyQt5可以高效简单地开发出自己想要的程序
PHP从入门到精通(第3版) 免费PDF电子书下载
《php从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。
猜你想看
web开发教程 PHP、MySQL与JavaScript学习手册 第4版 免费PDF电子书下载
《PHP、MySQL与JavaScript学习手册 第4版》是一个适用于PHP及Web开发初学者的入门教材。本书全面深入探讨了PHP和MySQL以及Javascript语言的学习指南,旨在让读者能够轻松上手基础Web应用程序开发和编程技术
PyQt5快速开发与实战电子书(清晰有目录书签无水印)高清pdf免费下载
本书既是介绍PyQt5的快速入门书籍,也是介绍PyQt5实战应用的书籍。PyQt5是对Qt所有类的Python封装,即可以利用Qt的强大功能,也可以利用Python丰富的生态,同时能够结合Python简洁的语法进行操作,其结果就是使用PyQt5可以高效简单地开发出自己想要的程序
个人网站接入支付宝当面付php源码,可用来打赏收款或做要饭网站
本文实例为大家分享了PHP支付宝当面付2.0代码,个人网站怎么接入支付宝当面付|php支付宝当面付打赏源码
仿百度本地惠生活jquery+js实现分站全国地区选择 非表单多级地址联动查询选择(附全国地区数据)
本文介绍通过js+jquery实现全国地区分站的功能,能够让用户方便快捷地选择所在地区,并且能够根据用户的选择进行相应的查询和展示。
PHP&MySQL跨设备网站开发实例精粹PDF免费下载
《PHP & MySQL跨设备网站开发实例精粹》从易学实用的角度详细讲解PHP、HTML5语法,MySQL数据□□取;针对网页之间的信息传递、表单的后端处理、HTTP Header、Cookie、Session、文件存取
《JavaScript和jQuery实战手册 原书第2版》 前端开发教程PDF免费下载
《JavaScript和jQuery实战手册(原书第2版)》第1版不仅在市场上取得了良好的销售成绩,而且获得了读者好的口碑,在JavaScript编程领域独树一帜!第2版结合JavaScript和jQuery新技术
通过一个简单例子演示Python3多线程是什么
什么是多线程:所有的线程都运行在同一个进程当中,共享相同的运行环境。线程有开始、顺序执行和结束三个部分,线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,
疯狂VirtualBox实战讲学录教程pdf免费下载
《疯狂VirtualBox实战讲学录:小耗子之VirtualBox修炼全程重现》是市面上第一部同时也是唯一一部完整介绍VirtualBox的“中文版全程实战手册”!本书完整记录了VirtualBox的点点滴滴:产品起源、功能、搭建、调优、企业级应用
文章评论