python数据采集有哪些技术_如何快速掌握Python数据采集与网络爬虫技术

1)Urllib基础

爬网页

打开python命令行界面,两种方法:ulropen()爬到内存,urlretrieve()爬到硬盘文件。

同理,只需换掉网址可爬取另一个网页内容

上面是将爬到的内容存在内存中,其实也可以存在硬盘文件中,使用urlretrieve()方法

>>> urllib.request.urlretrieve("http://www.jd.com",filename="D:/test.html")

之后可以打开test.html,京东网页就出来了。由于存在隐藏数据,有些数据信息和图片无法显示,可以使用抓包分析进行获取。

2)浏览器伪装

尝试用上面的方法去爬取糗事百科网站url="https://www.qiushibaike.com/",会返回拒绝访问的回复,但使用浏览器却可以正常打开。那么问题肯定是出在爬虫程序上,其原因在于爬虫发送的请求头所导致。

打开糗事百科页面,如下图,通过F12,找到headers,这里主要关注用户代理User-Agent字段。User-Agent代表是用什么工具访问糗事百科网站的。不同浏览器的User-Agent值是不同的。那么就可以在爬虫程序中,将其伪装成浏览器。

将User-Agent设置为浏览器中的值,虽然urlopen()不支持请求头的添加,但是可以利用opener进行addheaders,opener是支持高级功能的管理对象。代码如下:

3)用户代理池

在爬取过程中,一直用同样一个地址爬取是不可取的。如果每一次访问都是不同的用户,对方就很难进行反爬,那么用户代理池就是一种很好的反爬攻克的手段。

第一步,收集大量的用户代理User-Agent

第二步,建立函数UA(),用于切换用户代理User-Agent

for循环,每访问一次切换一次UA

每爬3次换一次UA

foriinrange(0,10):if(i%3==0): UA() data=urllib.request.urlopen(url).read().decode("utf-8","ignore")

(*每几次做某件事情,利用求余运算)

4)第一项练习-糗事百科爬虫实战

目标网站:https://www.qiushibaike.com/

需要把糗事百科中的热门段子爬取下来,包括翻页之后内容,该如何获取?

第一步,对网址进行分析,如下图所示,发现翻页之后变化的部分只是page后面的页面数字。

第二步,思考如何提取某个段子?查看网页代码,如下图所示,可以发现

的数量和每页段子数量相同,可以用
这个标识提取出每条段子信息。

第三步,利用上面所提到的用户代理池进行爬取。首先建立用户代理池,从用户代理池中随机选择一项,设置UA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值