python爬虫ip每三次换一次_干货|如何使用requests模块获取免费的代理IP?

我们通常会在网页中对目标网页进行爬取,为了避免爬取目标网页的后台服务器,对我们实施封锁IP的操作。我们可以每发送一次网络请求更换一个IP,从而降低被发现的风险。其实在获取免费的代理IP之前,需要先找到提供免费代理IP的网页,然后通过爬虫技术将大量的代理IP提取并保存至文件当中。以某免费代理IP网页为例,实现代码如下:

01  import requests  # 导入网络请求模块

02  from lxml import etree  # 导入HTML解析模块

03  import pandas as pd  # 导入pandas模块

04  ip_list = []  # 创建保存ip地址的列表

05  

06  def get_ip(url,headers):

07  # 发送网络请求

08 response = requests.get(url,headers=headers)

09  response.encoding = 'utf-8'  # 设置编码方式

10 if response.status_code == 200:  # 判断请求是否成功

11 html = etree.HTML(response.text)  # 解析HTML

12  # 获取所有带有IP的li标签

13  li_all = html.xpath('//li[@]')

14 for i in li_all:                  # 遍历每行内容

15 ip = i.xpath('span[@]/text()')[0]  # 获取ip

16  port = i.xpath('span[@]/text()')[0]  # 获取端口

17 ip_list.append(ip+':'+port)     # 将ip与端口组合并添加至列表当中

18 print('代理ip为:', ip, '对应端口为:', port)

19  # 头部信息

20  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '

21 'AppleWebKit/537.36 (KHTML, like Gecko) '

22  'Chrome/72.0.3626.121 Safari/537.36'}

23 if __name__ == '__main__':

24 ip_table = pd.DataFrame(columns=['ip'])  # 创建临时表格数据

25 for i in range(1,5):

26 # 获取免费代理IP的请求地址

27 url = 'https://www.dieniao.com/FreeProxy/{page}.html'.format(page=i)

28  get_ip(url,headers)

29 ip_table['ip'] = ip_list  # 将提取的ip保存至excel文件中的ip列

30 # 生成xlsx文件

31 ip_table.to_excel('ip.xlsx', sheet_name='data')

程序代码运行后控制台将显示如图1所示的代理ip与对应端口,项目文件中将自动生成“ip.xlsx”文件,文件内容如图2所示。           

f3b3f641cbad3a94a1af2fdb6b2ace86.png

注意:如果以上示例代码运行出错,读者可以参考以上示例代码的学习思路,然后爬取其它免费代理IP的网页。

今天的技能你get√了吗?想学习更多关于网络爬虫的硬核技能,推荐大家学习《Python网路爬虫从入门到实践》:全彩印刷,书中全面细致的讲解了关于Python网络爬虫开发所需的基础知识及核心技术,通过知识讲解→快速示例→综合应用→实战项目,四位一体的方式进行讲解,循序渐进,由浅入深,让大家快速达到理解和应用的目的,同时还设有技术交流群,图书作者和技术老师会在统一时间在线答疑哦~

全彩印刷,每满100减50,店铺首页领券更划算哦~

点我购买:《Python网络爬虫从入门到实践》

6e9714765fd934603a1711c68d6adcb9.png

End

目前100000+人已关注加入我们

498f08e95d4cdf65b65886c1dae19482.gif 5f0269b5b59bc7f1c6d3b9c1ef03b1ee.gif 4971b8fe9a5ca44f699614f617dd887a.gif af81303b938719dd3b6a418277dc5b41.gif 683b473979f161fa13ac7d484ad4ec8a.gif e4a78678b05f2db1d812cd284920aeb4.gif 1654627d2e5c91d0ec17ef646ac4aa9c.gif e9b39443a147247d7d08fac3c223cfd4.gif

b05e12db58d9abcb3aece79f3f7ff32a.gif ae3b0decf2d0d37d80fd5c97d75a138b.gif 927cf7b334f31230b57c23da5337bcc5.gif 8ae4f38103c6c0b5043807f8185ae1bf.gif 0e60be070cded8141981963c0bda5a0e.gif bc7bc1bd43f400fc94ca78f5ef24af01.gif c2003e4e87d70cb222ab44ad4a31ac64.gif a4306adfae70ba8d53355ab0f959caa9.gif

点击阅读原文

进入明日科技京东自营店↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值