黑洞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-09

    为什么要使用ip代理?

    为什么要使用ip代理?您可能知道,ip代理是一台隐藏您的 真实IP 地址并充当您的新Web入口点的计算机。 如果您一直想知道何时需要代理ip,您可能想知道应该使用代理ip的原因。

  2. 18

    2019-11

    如何使用Redis和Flask维护代理ip池?

    在进行爬虫工作的时候,经常会遇到IP被封的问题,烦不胜烦,还好可以使用代理IP来解决这一个麻烦。代理IP哪里来,有人说,网上很多免费的,把它们收集起来就有了,有人说直接找代理IP服

  3. 17

    2019-04

    划重点:你所不知道的代理IP知识

    互联网时代,玩游戏想开小号,读新闻刷金币想多开几个手机,凡是当你不满足于一个账号所带来的满足感的时候,你就会逐步接触到 代理ip。

  4. 05

    2019-05

    如何选择出色的付费代理IP提供商?

    当下,无数场景中都要用到代理IP。那么,怎么选择出色的付费代理ip提供商呢?

  5. 30

    2019-10

    国内哪个高匿代理ip好用?

    代理ip在现时代存在的意义已经不是单纯的换IP,代理IP软件是可以提供固定或者动态IP的工具,可以解决很多IP限制问题,例如爬虫工作、IP被封等等。现在国内代理IP软件有很多,那么,国内哪

  6. 09

    2019-07

    Python高级技巧:lazy property

    Python 对象的延迟初始化是指,当它第一次被创建时才进行初始化,或者保存第一次创建的结果,然后每次调用的时候直接返回该结果。延迟初始化主要用于提高性能,避免浪费计算,并减