首页 > 经验 > 关键词 > 网络爬虫最新资讯 > 正文

用案例让你一文搞懂python网络爬虫

2019-09-04 09:03 · 稿源:数据EDTA公众号

黑客 代码 安全漏洞 程序员

声明:本文来自于微信公众号  数据EDTA(ID:livandata),作者: livan,授权站长之家转载发布。

很久以前写了一篇爬虫的文章,把它放在CSDN上(livan1234)没想到点击量竟然暴涨,足以看到大家在数据获取方面的需求,爬虫技术现在已经非常普遍,其用途也非常广泛,很多牛人在各个领域做过相关的尝试,比如:

 1)爬取汽车之家数据,利用论坛发言的抓取以及NLP,对各种车型的车主做画像。

2)抓取各大电商的评论及销量数据,对各种商品(颗粒度可到款式)沿时间序列的销量以及用户的消费场景进行分析。

3)还可以根据用户评价做情感分析,实时监控产品在消费者心目中的形象,对新发布的产品及时监控,以便调整策略。

4)抓取房产买卖及租售信息,对热热闹闹的房价问题进行分析。

5)抓取大众点评、美团网等餐饮及消费类网站:各种店面的开业情况以及用户消费和评价,了解周边变化的口味,所谓是“舌尖上的爬虫”。以及各种变化的口味,比如:啤酒在衰退,重庆小面在崛起。

6) 58 同城等分类信息网站:抓取招商加盟的数据,对定价进行分析,帮助网友解惑。

7)拉勾网、中华英才网等招聘网站:抓取各类职位信息,分析最热门的职位以及薪水。

8)挂号网等医疗信息网站:抓取医生信息并于宏观情况进行交叉对比。

9)应用宝等App市场:对各个App的发展情况进行跟踪及预测。(顺便吹一下牛,我们这个榜单很早就发现小红书App的快速增长趋势以及在年轻人中的极佳口碑)

10)携程、去哪儿及 12306 等交通出行类网站:对航班及高铁等信息进行抓取,能从一个侧面反映经济是否正在走入下行通道。

11)雪球等财经类网站:抓取雪球KOL或者高回报用户的行为,找出推荐股票

12) 58 同城二手车、易车等汽车类网站:什么品牌或者型号的二手车残值高?更保值?反之,什么类型的贬值较快?- 二手车,找出最佳的买车时间以及最保值的汽车。

13)神州租车、一嗨租车等租车类网站:抓取它们列举出来的租车信息,长期跟踪租车价格及数量等信息。

14)各类信托网站:通过抓取信托的数据,了解信托项目的类型及规模。其实还有很多数据,不一一列举了。

上次的文章是在讨论移动端的数据获取:点此查看

本文对爬虫做一个全面的总结,不一定包治百病,但是能治好大部分疾病,希望能够对大家有所帮助:

1、 urllib 库:这是一个在爬虫领域绕不开的库,他支持 http 的爬取,几乎可以取到方方面面的内容。

以下面的豆瓣案例做一个简要的解释:

豆瓣小案例:

image.png

常用函数:

image.png

2、超时设置:

由于网络速度或者对方服务器的问题,我们爬取一个网页的时候,都需要设置时间,我们访问一个网页,如果该网页长时间未响应,那么我们的系统就会判断该网页超时了,即无法打开该网页。

有时候,我们需要根据自己的需求,来设置超时的时间值,比如:有些网站会反应快,我们希望 2 秒种没有反应则判断为超时,那么此时,timeout= 2 即为设置方式,即在 urlopen 中加入 timeout 参数。再比如,有些网站服务器反应慢,那么我们希望 100 秒没有反应,才判断超时,此时的timeout即设置为100,接下来为大家讲解爬虫超时的设置。

image.png

3、自动模拟 Http 请求:

客户端如果要与服务器端进行通信,需要通过http进行请求,http请求有很多种,我们在此会讲post与get两种请求方式,比如登录、搜索某些信息的时候会用到。

1)处理 get 请求:

image.png

2)理 post 请求:

所谓post请求即为 HTML 的 form 中存在 method=“post”的标签,如下文:

<body>

<form action=””,method=”post”>

姓名:<input name=”name” type=”text”/><br>

密码:<input name=”pass” type=”text”/><br>

<input name=”” type=”submit” value=”点击提交”>

</body>

在新浪 login.sina.com.cn 中即可看到,form 为 post 方式。我们只需要 form 表单中的 name 属性即可。

如下图:

image.png

4、爬虫的异常处理:

爬虫在运行的过程中,很多时候都会遇到这样或那样的异常。如果没有异常处理,爬虫遇到异常时就会直接崩溃停止运行,下次再次运行时,又会重头开始,所以,要开发一个具有顽强生命力的爬虫,必须要进行异常处理。

异常处理主要是为了增强代码的稳定性。

    两者都是异常处理的类,HTTPError是URLError的子类,HTTPError有异常状态码与异常原因,URLError没有异常状态码,所以,在处理的时候,不能使用URLError直接替代HTTPError。如果要替代,必须要判断是否有状态码属性。

接下来我们通过实战讲解:

image.png

具体的实战为:

image.png

5、爬虫的伪装技术:

浏览器伪装技术原理:

我们可以试试爬取csdn博客,我们发现会返回403,因为对方服务器会对爬虫进行屏蔽。此时我们需要伪装成浏览器才能爬取。

浏览器伪装我们一般通过报头进行,接下来我们通过实战分析一下。

image.png

6、新闻网站爬取:

需求:将新浪新闻首页(http://news.sina.com.cn/)所有新闻都爬到本地。

思路:先爬首页,通过正则获取所有新闻链接,然后依次爬各新闻,并存储到本地。

image.png

7、爬虫防屏蔽手段之代理服务器:

image.png

如何做代理:

image.png

8、图片爬虫实战: 在浏览器爬取时,有时不同的浏览器会有不同的查询结果,解析出不同的源码。

首先在“审查元素”中确定元素的重点字段是哪些,然后再在“源码”中查找对应的图片位置,确定图片 url 的规则。

#!/usr/bin/env python # _*_ UTF-8 _*_

image.png

在源码解决不了的情况下,需要进行抓包。作业:千图网的爬取(可以通过调试找到报错原因):

image.png

9、抓包分析实战(一) 

获取淘宝的评论信息、腾讯的娱乐新闻信息等需要抓包分析。如何抓取 https 的数据包以及腾讯视频的评论。

TextView:显示返回的信息;

通过 fiddler 找到含有评论的网址,复制出对应的网址,观察网址的规则。

设置完 fiddler 之后,点击要爬取的页面,回到 fiddler 中,确定有 js 内容的链接:

对应的网址为:(点此)

然后确定其中的 itemId 等字段的内容,其中的部分内容未必有用处,可以直接删除,比如 上面 url的 ua 字段。

如果要抓取 https 的数据:

Fiddler 默认只能抓取 HTTP 协议的网页,不能抓取 HTTPS 协议的网页,而我们很多时候,都需要抓 HTTPS 协议的网页,比如抓淘宝数据等。今天,韦玮老师会为大家讲解如何使用 Fiddler 抓取 HTTPS 协议的网页。

打开 Fiddler,点击“Tools--FiddlerOptions--HTTPS”,把下方的全部勾上,如下图所示:

然后,点击 Action,选择将CA 证书导入到桌面,即第二项,导出后,点击上图的 ok 保存配置。

然后在桌面上就有了导出的证书,如下所示:

随后,我们可以在浏览器中导入该证书。我们打开火狐浏览器,打开“选项--高级--证书- -导入”,选择桌面上的证书,导入即可。随后,Fiddler 就可以抓 HTTPS 协议的网页 了。如下图所示。

抓取腾讯视频的评论:

下图为带评论的 js 文件(从 fiddler 中获取):

其中有多个字段,commentid 等,在点击“加载更多”时,commentID 会发生变化,在第一个url 的源码中会找到下一个评论 url 的地址,找到 last 字段,即为下一个 url 的commentid, 以此来构造下一个 url。

image.png

10、微信爬虫实战:

如何解决微信的限制?

image.png

image.png

image.png

11、多线程爬取实战 糗事百科的代码:微信爬虫的爬取依然是使用浏览器,即在搜狗浏览器上使用微信网页版,然后编辑这个页面的 url,以获取内容。

image.png

将此程序改为多进程为:

image.png

image.png

  技术总是在不停的进步的,现在的这些爬虫技术一定不能适应所有的环境,如有各位意犹未尽,请关注我的公众号:livandata

image.png

  • 相关推荐
  • 大家在看
  • 为什么Java、Python会成为程序员最害怕的编程语言?

    最不受欢迎 / 最令人畏惧的编程语言有哪些?这些编程语言为什么令人畏惧?对它们的评价是否公正?在 StackOverflow 的 2020 年度开发者调查中,有一张表格,显示的是“最受欢迎、最令人畏惧和最想要的编程语言”。最受欢迎的和最想要的编程语言,嗯,是有点无聊。倒是那个最令人畏惧的就有意思多了。正如托尔斯泰(Tolstoy)所说的:“幸福的家庭都是相似的,而不幸的家庭则各有各的不幸。”

  • 高效学风变编程Python,解锁不一样的职场进阶之路

    今年,很多人在问一个问题:到底什么才是抗风险能力?稳定的工作?存款?理财?有人预测:“到2030年,今天一半的工作岗位都将消失。”关于哪些工作最先消失,李开复提出过“五秒钟准则”:一项工作如果可以在5秒钟内作出相应决定,那就非常可能被人工智能取代。AI的发展早已超过我们的想象:气象播报、智能交通、无人酒店、无人超市、无人驾驶...... 人工智能都出色地完成。因此,在风变编程看来,真正的抗风险能力应该是一项不论

  • Python有望超越Java排第二?风变编程解析编程语言新趋势

    随着人工智能时代的来临,编程语言的热度居高不下,随着智能机器人的出现,在2020年更是迎来一波新的高峰。在这样的大环境下,关于谁是人工智能最流行编程语言的讨论也十分热烈,C、C++、Java、Python等编程语言不断被拿出来做比较。那么接下来,风变编程来解析一波当下编程语言的新趋势。Python受欢迎度有望超越Java?近日,TIOBE编程语言社区公布了2020年10月编程语言排行榜。榜单数据显示,Python的受欢迎程度十分逼近排在第二?

  • 云安全日报200929:云计算热门语言Python发现注入漏洞,需要尽快升级

    Python是一种跨平台的计算机程序设计语言。它结合了解释性、编译性、互动性和面向对象的诸多特性,最初设计用于编写自动化脚本,然而随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。近些年,Python尤其在云计算,人工智能(AI)领域,应用十分广泛。不过最近Python爆出了比较严重的注入漏洞,需要尽快升级。以下是漏洞详情:漏洞详情CVE ID: CVE-2020-26116 CVSS评分: 5.0 中Python http.client(Pytho

  • widgetsmith详细设置教程 widgetsmith怎么设置

    widgetsmith是iOS14的定制小组件,可以在你的iPhone上定制化一些内容,比如天气等等,很多朋友还不清楚widgetsmith怎么设置,下面就来为大家分享一下widgetsmith的设置教程。

  • ThinkBook怎么样?视觉系创造本ThinkBook 15p魅力来袭

    若要说商务场合选择什么样的笔记本更实用,ThinkBook大概会在可挑选的第一梯队中,作为联想在近年才推出的全新PC品牌,ThinkBook一直以独特创新的品牌理念广为人知,近期,ThinkBook还官宣了新生代偶像王源作为品牌代言人,新品视觉系创造本ThinkBook 15p也吸引了众多职场人士的眼球。ThinkBook怎么样?这就带你一探究竟。ThinkBook怎么样?ThinkBook 15p凝聚创造能量作为专为创造者而生的视觉系创造本ThinkBook 15p,硬件配置就十

  • 再次中断拍摄:Netflix《The Harder They Fall》一演员检测出新冠阳性

    据外媒报道,尽管电视和电影行业在停产和中断数月后正在慢慢恢复工作,但疫情仍在制造问题并带带来延误。最新的例子就是Netflix的原创西部片《TheHarderTheyFall》,在一名演员被检测出COVID-19呈阳性后该片不得不暂停制作。

  • GitHub将于下月起用“main”取代“master”术语

    从下个月开始,GitHub上创建的所有新的源代码仓库都将被命名为 "main"而不是 "master",这代表公司正在努力删除不必要的奴隶制相关的词语,并用更具包容性的术语取代。GitHub仓库是用户和公司存储和同步其源代码项目的地方。

  • ThinkBook怎么样?锐智系创造本强劲性能超凡体验

    通天大道宽又阔,创业青年坚且毅,对于初入职场或自主创业的青年人来说,一台能够满足商务办公需求,性能强大,操作流畅的办公电脑必不可少。锐智系创造本ThinkBook 15,超强性能,灵巧便捷,轻松应对各种办公需求,为青年人商务办公、创新创业带来超凡体验。创造本ThinkBook怎么样?联想为青年创新创业护航联想集团成立于1984年,致力于从事开发、制造及销售最可靠的、安全易用的技术产品。锐智系创造本ThinkBook 15专为青年创业?

  • 揭秘泰国the royal皇家系列品牌背后的故事

    说到维生素,大家脑海中都会出现几个品牌。其中最受小编钟爱的不过于泰国THE ROYAL皇家VC咀嚼片,这个咀嚼片可以说是THE ROYAL的网红产品了,作为蔬菜和水果中都含有的高活性物质,VC主动参与人体的许多新陈代谢活动,还具有抗氧化、抑制自由基的作用,在帮助人体提高免疫力和抵抗力的同时有助于预防和治疗缺铁性贫血,它的补充对于无论哪个年龄段的人来说都十分必要。泰国THE ROYAL皇家VC咀嚼片一直很多欢迎的原因除了品牌口碑好之外,其?

  • Linux 5.9.1以及部分旧版稳定内核已解决 "Bleeding Tooth"漏洞问题

    Linux5.9正式发布刚过去一周,修正版本的内核5.9.1就已经跟随而来,让这个稳定版本更值得关注的是包括了本周被Google与英特尔的安全人员公开及警告的"BleedingTooth"蓝牙漏洞的修复。BleedingTooth是一个影响Linux的远程代码执行漏洞,源于L2CAP代码中基于堆的类型混乱。

  • 双十一红人内容营销,从To-C到With-C

    双十一这天,“一天顶一月”、“一天顶一季”的销量奇迹在不断上演,对大多数品牌来说,是一年中最重要的一次大考。

  • SN取得小组第一出线,阿布评上单Bin有巅峰Theshy味道了

    斗玩网原创:英雄联盟S10全球总决赛A组出线的战队在昨天正式出炉,SN战队经过加赛后再次战胜G2拿到小组第一,为LPL赛区取得了一个不错的结果。其中SN上单Bin的发挥更是十分出色,在昨天两局对阵G2比赛中都扮演了关键先生的作用,是SN可以拿下小组第一重要的功臣,就连企鹅电竞阿布也直言阿Bin的发挥有巅峰Theshy的味道了。

  • The Markup推出公民浏览器项目 用于审核社交媒体使用的算法

    TheMarkup是一家调查世界上最强大的机构如何利用技术重塑社会的非营利性新闻机构,其在上周五宣布了公民浏览器项目(CitizenBrowserProject)的发展--该项目旨在测量虚假信息如何在社交媒体平台上传播。

  • 研究人员担心BleedingTooth蓝牙漏洞给Linux系统带来风险

    基于Linux的操作系统通常被认为比Windows等系统更安全,但这并不意味着它们完全没有安全问题。谷歌安全研究人员已经对Linux蓝牙堆栈中的一系列"零点击"漏洞发出警告。该漏洞被称为BleedingTooth,最坏的后果是带来远程代码执行攻击。

  • 跟风!继苹果之后:LG G8X ThinQ在印度也将不再随附手机充电器

    iPhone 12终于发布了,就像传言的一样,iPhone 12系列果然不再附赠耳机和充电器,而这一做法似乎也正在被其他手机厂商效仿。据外媒报道,LG官方已经确认,其LG G8X ThinQ手机在印度也将不再随

    LG
  • HomePod Mini是苹果旗下首款支持Thread物联网技术的产品

    正如HomePodMini产品页所介绍的那样,这款小巧的扬声器是苹果旗下首款支持Thread网络技术的产品。Thread是用于连接物联网设备、基于低功耗IP网络的技术,提供安全、基于Mesh的系统,能够轻松构建设备生态系统。

  • 联想ThinkBook新青年创造本明天发布:4K屏+180度翻转

    9月24日,联想将正式发布ThinkBook新青年创造本,配备4K屏幕,支持180度翻转,满足办公娱乐多种需求。联想ThinkBook新青年创造本采用金属机身,180度开合设计。A面采用星耀灰撞色设计,3D

  • 网络机顶盒哪个好?抖音小红书爆火的网络机顶盒排行榜

    网络机顶盒哪个好呢?对于大部分人来说网络机顶盒最重要的就是看电视,视频体验必要到位,但是市面上很多的网络机顶盒都是各种各样的功能做得花里胡哨,唯独核心的视频体验没优化好,看视频经常卡顿死机等等。作为一个行业内的资深从业人员,接触的网络机顶盒已经不下几十款了,今天就来总结一份现在抖音小红书爆火的网络机顶盒排行榜。第一款15 年老牌子WE30C网络机顶盒综合推荐指数:★★★★★泰捷是专业视频盒子,在业内是有口

  • 英特尔 Evo平台新锐之秀,全新轻颜系创造本ThinkBook 13s等新品发布

    2020 年 9 月 24 日,ThinkBook秋季新品发布会在联想全球总部举办。会上,联想集团副总裁、中国区中小企业事业部总经理王忠作为联想ThinkBook首席前途官,带来了全新ThinkBook新青年创造本系列新品,搭载英特尔锐炬? Xe 显卡的第 11 代智能英特尔? 酷睿? 处理器 ,这是全球性能领先的轻薄型笔记本处理器,革命性的 CPU+GPU 创新架构,颠覆现有电脑性能标准,开辟轻薄本新境界!相比同类产品,在实际工作场景中内容创作速度提升 2.7

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议
  • 热门标签