实验4:Python爬虫代理的使用

【实验内容】

本实验主要介绍在爬虫采集数据的过程中代理的使用。

【实验目的】

1、掌握代理使用的基本场景;

2、解决IP封锁问题;

3、提高爬虫访问效率;

【实验步骤】

步骤1选择代理服务提供商

步骤2配置爬虫使用代理

步骤3 采集数据生成json文件

 

步骤1选择代理服务提供商

(1) 代理的概念

代理(Proxy)是一种网络服务,它充当客户端和目标服务器之间的中介,接受来自客户端的请求并将其转发给目标服务器。代理可以修改、过滤、缓存请求,同时也可以隐藏客户端的真实IP地址。在网络爬虫和其他网络应用中,代理通常用于实现以下目的:

  • 隐藏真实IP地址
  • 绕过IP封锁提高访问速度和效率
  • 访问受限制的内容
  • 实现负载均衡

(2) 选择代理服务商

有许多代理服务商提供各种类型的代理服务,包括HTTP、HTTPS、Socks5等。以下是一些常见的代理服务商,它们提供了不同类型的代理,适用于各种需求。

  • 阿布云(Abuyun)
  • 快代理(Kuai Proxy)
  • 芝麻代理(ZhiMa Proxy)

本次实验以快代理为例。

注册登录账号后,选择购买如所示的代理(以隧道代理为例)。

***************************************************************************

购买完成后回到账户管理页面,在我的订单可以看到刚刚购买的产品。

***************************************************************************

 

步骤2配置爬虫使用代理

以四川政府采购中标数据为例(http://www.ccgp-sichuan.gov.cn/),在不使用代理对该网址进行高频率数据采集时,本机ip会被该网址进行屏蔽,返回空数据,此时就需要代理ip 的介入。

***************************************************************************

配置代理ip,将其封装为一个函数,这样便于整个项目的使用。

***************************************************************************

 

步骤3 采集数据生成json文件

(1) 获取子页面链接

分析该网址很容易发现该网页使用ajax发送请求返回数据,因此我们只需要对该接口发送请求就可以获得子页面的数据。Python网络爬虫实战实验4:Python爬虫代理的使用

 

Python网络爬虫实战实验4:Python爬虫代理的使用

/*=====================================================================*/

************************************************************************

从返回的数据中解析出子链接、地区名、地区码,将其传递给parse_html解析页面。

 

(2) 解析子页面数据

/*======================================================================================================================================*/

*********************************************************************

使用lxml.html的clean模块将返回的文本内容进行清理,去除掉<script> <style> 等标签。

*********************************************************************

使用lxml库中的etree模块,将清理后的HTML文本解析成一个XPath可操作的树形结构。使用XPath选择器定位id为’source’的span元素,提取其中的文本内容。 /*========================================================================================*/

*********************************************************************

使用XPath选择器定位id为’noticeTime’的span元素下的i元素,提取其中的文本内容。 /*==================================================================================================*/

*********************************************************************

(3) 保存为json文件

/===============================================================================================================================================*/

文件部分内容如下:

*********************************************************************

相关新闻

联系我们

027-87870986

在线咨询:点击这里给我发消息

邮件:931234110@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息