黑洞HTTP

黑洞HTTP

您的位置: 首页 > 新闻资讯 > HTTP代理 > 正文

如何快速掌握Python数据采集与网络爬虫技术

发布时间:2019年03月21日 来源:http://http.hunbovps.com/News/getList/catid/8/id/166.html

一、数据采集与网络爬虫技术简介


网络爬虫是用于数据采集的一门技术,可以帮助我们自动地进行信息的获取与筛选。从技术手段来说,网络爬虫有多种实现方案,如PHP、Java、Python ...。那么用python 也会有很多不同的技术方案(Urllib、requests、scrapy、selenium...),每种技术各有各的特点,只需掌握一种技术,其它便迎刃而解。同理,某一种技术解决不了的难题,用其它技术或方依然无法解决。网络爬虫的难点并不在于网络爬虫本身,而在于网页的分析与爬虫的反爬攻克问题。希望在本次课程中大家可以领会爬虫中相对比较精髓的内容。


二、网络爬虫技术基础


在本文中,将使用Urllib技术手段进行项目的编写。同样,掌握了该技术手段,其他的技术手段也不难掌握,因为爬虫的难点不在于技术手段本身。本知识点包括如下内容:


Urllib基础


浏览器伪装


用户代理池


糗事百科爬虫实战


需要提前具备的基础知识:正则表达式


1)Urllib基础


爬网页


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


如何快速掌握Python数据采集与网络爬虫技术

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


如何快速掌握Python数据采集与网络爬虫技术

上面是将爬到的内容存在内存中,其实也可以存在硬盘文件中,使用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值是不同的。那么就可以在爬虫程序中,将其伪装成浏览器。


如何快速掌握Python数据采集与网络爬虫技术

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


如何快速掌握Python数据采集与网络爬虫技术

3)用户代理池


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


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


如何快速掌握Python数据采集与网络爬虫技术

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


如何快速掌握Python数据采集与网络爬虫技术

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


如何快速掌握Python数据采集与网络爬虫技术

每爬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后面的页面数字。




第二步,思考如何提取某个段子?查看网页代码,如下图所示,可以发现<div class="content">的数量和每页段子数量相同,可以用<div class="content">这个标识提取出每条段子信息。


如何快速掌握Python数据采集与网络爬虫技术

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


如何快速掌握Python数据采集与网络爬虫技术

相关文章内容简介

1 如何快速掌握Python数据采集与网络爬虫技术

一、数据采集与网络爬虫技术简介网络爬虫是用于数据采集的一门技术,可以帮助我们自动地进行信息的获取与筛选。从技术手段来说,网络爬虫有多种实现方案,如PHP、Java、Python ...。那么用python 也会有很多不同的技术方案(Urllib、requests、scrapy、selenium...),每种技术各有各的特点,只需掌握一种技术,其它便迎刃而解。同理,某一种技术解决不了的难题,用其它技术或方依然无法解决。网络爬虫的难点并不在于网络爬虫本身,而在于网页的分析与爬虫的反爬攻克问题。希望在本次课程中大家可以领会爬虫中相对比较精髓的内容。二、网络爬虫技术基础在本文中,将使用Urllib技术手段进行项目的编写。同样,掌握了该技术手段,其他的技术手段也不难掌握,因为爬虫的难点不在于技术手段本身。本知识点包括如下内容:Urllib基础浏览器伪装用户代理池糗事百科爬虫实战需要提前具备的基础知识 [阅读全文]

热门标签

最新标签

推荐阅读

  1. 28

    2019-10

    避免IP被封,爬虫如何进行伪装?

    爬取大数据时,我们需要 Python爬虫的帮助,但抓取数据时,我们很容易被目标网站限制访问,这是目标网站阻止别人批量获取自己网站信息的一种方式,通常会采用封 IP 作为终极手段,效果非

  2. 08

    2019-09

    便宜的IP代理好用吗?

    爬虫是网络数据的重要组成部分,但并不是所有的目标站点都愿意共享信息,此时它们将采取反爬虫措施来抵抗它们,其中最常见的是禁止IP。IP转换器可以以分钟为单位切换IP地址,注册用户保

  3. 15

    2019-11

    国外代理服务器是什么概念?

    国内有代理ip服务器,国外也有,那么国外代理服务器和国内的有什么不同呢?首先,说一说国外 代理服务器 的概念。国外代理服务器就是网络信息的中转站。代理服务器就好象一个大的Cache,

  4. 04

    2019-11

    可供验证代理IP有效性的API接口怎么找?

    搭建ip池或者从网站上爬取免费代理IP,当然购买付费API最安全,从代理IP服务商那边获取代理IP,然后放入本地IP池,构建本地IP池API,这样就可以随心所欲的调用本地API获取IP进行使用了。那么

  5. 31

    2019-05

    做爬虫选择哪家IP代理服务器软件?

    众所周知,没有IP代理服务器,爬虫工作就无从谈起,好的IP代理服务器资源可以让爬虫工作事半功倍,正所谓“工欲善其事必先利其器”,所以选择一个好的IP代理服务器资源至关重要。

  6. 22

    2019-03

    不用IP代理,用爬虫爬取数据有什么优缺点?

    Python是一种解释型脚本语言,可以用于Web 和 Internet开发、科学计算和统计等。由于Python易读、易维护,因此受到大量用户的青睐。今天芝麻HTTP就为大家详细的介绍一下,常见的爬虫框架都有哪