Python爬虫框架Scrapy_200页操作过程

所需积分/C币:14 2018-08-21 15:45:25 3.88MB PDF
76
收藏 收藏
举报

Python爬虫从入门到精通,这篇文档主要是针对学习python爬虫的课程,又基础的python爬虫框架scrapy开始,一步步学习到最后完整的爬虫完成,现在python爬虫应用的非常广泛,改篇详细介绍了scrapy爬虫和其他爬虫技术的对比,深入剖析python爬虫的每一步,主要内容如下: 1)pyhon爬虫基础 2)爬虫库 3)Scrapy框架 4)命令行工具 5)Items 6)Spiders 7)选择器 8)管道 9)中间件 10)爬虫小技巧
本章技能目标及重难点 127 本章学习目标 127 本章学习建议 12 本章内容(学习活动) 128 第7章选择器… 141 本章工作任务 141 本章技能目标及重难点 141 本章学习目标… 141 本章学习建议 141 本章内容(学习活动) 142 第8章管道….......... 156 本章工作任务 本章技能目标及重难点. 156 本章学习目标 156 本章学习建议 156 本章内容(学习活动)…... 157 第9章中间件 171 本章工作任务 171 本章技能目标及重难点. 171 本章学习目标 1 .171 本章学习建议 171 本章内容(学习活动) 172 第10章爬虫小技巧 185 本章工作任务 185 本章技能目标及重难点 185 本章学习目标 185 本章学习建议 185 本章内容(学习活动) 186 第1章 Python爬虫基础 第1章 Python爬虫基础 本章工作任务 任务1:为什么学习 Python爬虫 任务2:什么是爬虫 任务3: urllib的应用 任务4: cookie实际应用 任务5:正则表达式 本章技能目标及重难点 编号 技能点描述 级别 为什么学习爬虫 ★ 2 什么是爬虫 ★★ ur|ib的应用 ★★★ 4 cookie实际应用 ★★ 正则表达式 ★★ 注:"★"理解级别"★★"掌握级别"★★★"应用级别 本章学习目标 本章开始学习 Python爬虫,需要同学们理解为什么使用爬虫,它的概念、特点。最主要的是需要 大家学会如何使用基础的爬虫库。 本章学习建议 本章适合有 Python基础的学员学习。 第1章 Python爬虫基础 本章内容(学习活动) 1.1为什么学习 Python爬虫? 现在信息更新的非常快速,又迎来了大数据的时代,各行各业如果不与时俱进,都将面临优胜劣汰, 知识是不断的更新的,只有一技之长,才能立于不败之地 网络爬虫,即 Web Spider,是一个很形象的名字。目前爬虫开发的语言的主要是 Python,本课 程结合几个小的爬虫案例,帮助学员更好的学习爬虫开发。 那么为什么我们要学习 Python爬虫呢?而不选择Java?PHP? Nodes? 1.1.1 Python语言的流行程度 Spectrun排名: Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名 但排在前四名的语言 Python、C、Java和C++都拥有广大的用户群体,并且他们的用户总量也十分相 近 现在全世界大约有几百万以上的 Python语言的用户,大家可以看一下以下图片 第1章 Python爬虫基础 Language Types(click to hide ⊕ Web I Mobile Enterprise鲁 Embedded Language Rank Types Spectrum Ranking hon 1000 997 3. Java 每口94 x辜972 每86 6.R 88:1 7. Javascript曲口 85.5 8. PHP 81.4 10. Swift 75.3 11 Arduino 730 12. Ruby 724 13. Assembly 721 14. scala 653 16. Matlab 680 16. HTML 670 17. shel 663 576 19. Visual Basic 554 20. Cuda 539 图1-1IEEE发布2017年7月度编程语言排行榜 图1-1为2016年 Spectrum评选出的排名前十的编程语言 Spectrum的“交互式编程语言排行” 让用户可以根据自己的喜好调整不同评价指标所占的权重从而得到所需的排名。从该图可以看出 Python 在EEE的会员用户语言使用中排名第 第1章 Python爬虫基础 Aug 2017 Aug 2016 Change Programming Language Ratings Change java 12981%5.05% 6.477%-4.83% C 5550%-0.25% 4.155%-0.71% Python 3692%-0.71% visual basic net 2.589%+0.05% PHP 2.293%-0.88% 8 7 Javas 2.098%-0.81% Perl 1s95%-0.52% 12 Ruby 1.555%-0.31% 11 14 Swift 1.825%-0.18% 12 11 Delphi object Pascal 1.825%-0.45% 13 13 Visual basic 1.809%-0.24% 14 Assembly language 1.805%-0.58% 15 1.76%+0.16% 18 20 Go 1.545%+0.37% 7 MATLA日 1.619%+0.08% 18 Objective-C 1.505%-0.38% Scratch 1.481%+0.43% 20 Dart 1273%+0.30v 图1-2ToBE2017年8月编程语言排行榜 图1-2ToBE的数据就更能说明Pythωn语言的地位,T○εE编程语言社区排行榜是编程语言流行 趋势的一个指标,毎月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。 排名使用著名的搜索引擎(诸如 Google、MSN、 Yahoo!、 Wikipedia、 YouTube以及 Baidu等)进 行计算。而 Python语言排名第五。并趋于日益增长趋势。 第1章 Python爬虫基础 1.1.2爬虫框架比较 1、如果是定向爬取几个页面,做一些简单的页面解析,爬取效率不是核心要求,那么用什么语言差 异不大 当然要是页面结构复杂,正则表达式写得巨复杂,尤其是用过那些支持 xpath的类库/爬虫库后,就 会发现此种方式虽然入门门槛低,但扩展性、可维护性等都奇差。因此此种情况下还是推荐采用一些现成 的爬虫库,诸如 xpath、多线程支持还是必须考虑的因素。 2、如果是定向爬取,且主要目标是解析j动态生成的内容 此时候,页面内容是有js/ajax动态生成的,用普通的请求页面→>解析的方法就不管用了,需要借助 一个类似 firefox、 chrome浏览器的js引擎来对页面的js代码做动态解析 此种情况下,推荐考虑 casper丿S+ phantoms或sier」S+ phantoms,当然诸如 seleniun之类 的也可以考虑。 3、如果爬虫是涉及大规模网站爬取,效率、扩展性、可维护性等是必须考虑的因素时候 大规模爬虫爬取涉及诸多问题:多线程并发、J机制、分布式爬取、消息通讯、判重机制、任务调 度等等,此时候语言和所用框架的选取就具有极大意义了。 PHP对多线程、异步支持较差,不建议采用。 Nodes:对一些垂直网站爬取倒可以,但由于分布式爬取、消息通讯等支持较弱,根据自己情况判 断。 Python:强烈建议,对以上问题都有较好攴持。尤其是 Scrap框架值得作为第-选择。优点诸多 支持ⅹpath;基于 twisted,性能不错;有较好的调试工具 此种情况下,如果还需要做js动态内容的解析, caspers就不适合了,只有基于诸如 chrome v8 引擎之类自己做js引擎 至于C、C++虽然性能不错,但不推荐,尤其是考虑到成本等诸多因素;对于大部分公司还是建议 基于一些开源的框架来做,不要自己发明轮子,做—个简单的爬虫容易,但要做—个完备的爬虫挺难的。 1.13为什么 Python适合写爬虫 1.抓取网页本身的接口 第1章 Python爬虫基础 相比与其他静态编程语言,如java,c#,C++, python抓取网页文档的接口更简洁;相比其他动 态脚本语言,如perl, shell, python的urlb2包提供了较为完整的访问网页文档的AP。(当然ruby 也是很好的选择) 此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我 们需要模拟 user agent的行为构造合适的请求譬如模拟用户登陆、模拟 session/cookie的存储和设置。 在 python里都有非常优秀的第三方包帮你搞定,如 Requests, mechanize 2网页抓取后的处理 抓取的网页通常需要处理,比如过滤htm标签,提取文本等。 python的 beautifulsoap提供了简 洁的文档处理功能,能用极短的代码完成大部分文档的处理。 3对页面的解析能力 关于这一条,基本上就是靠特定语言的第三方包来完成网页的解析。如果要从零开始自己实现一个 HTML解析器,难度和时间上的阻碍都是很大的。而对于复杂的基于大量 Javascript运算生成的网页或 者请求,则可以通过调度浏览器环境来完成。这一条上, Python是绝对胜任的。 4对数据库的操作能力( mysql) 对数据库的操作能力上, Python有官方及第三方的连接库。另外,对于爬虫抓取的数据,存储在 NOSQL型数据库个人认为更加合适 5爬取效率 确实脚本语言的运算速度不高,但是相对于特定网站反爬虫机制强度以及网络O的速度,这几门语 言的速度诧异都可以忽略不计,而在于开发者的水平。如果利用好发送网络请求的等待时间处理另外的事 情(多线程、多进程或者协程),那么各语言效率上是不成问题的。 6代码量 这一点上 Python是占有优势的,众所周知 Python代码简洁著称,只要开发者水平到位, Python 代码可以像伪代码一样简洁易懂,且代码量较低。 其实以上功能很多语言和工具都能做但是用 python能够干得最快最干净。 Life is short, u need py 接下来我们来介绍什么是爬虫。 12什么是爬虫? 121爬虫的由来 第1章 Python爬虫基础 随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大 的挑战。搜索引擎( Search engine),例如传统的通用搜索引擎 AltaVista, Yahoo和 Google等,作为 一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一 定的局限性,如 (1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大 量用户不关心的网页 (2通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资 源之间的矛盾将进一步加深。 (3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大 量岀现通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力不能很好地发现和获取。 (4通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的査询。 为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的 程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用 爬虫( general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定 主题內容相关的网页,为面向主题的用户查询准备数据资源。 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。 传统爬虫从一个或若干初始网页的υRL开始,获得初始网页上的∪RL,在抓取网页的过程中,不断从当 前页面上抽取新的URL放入队列直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根 据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的∪RL队列。然后, 它将根据一定的搜索策略从队列中选择下一步要抓取的网页∪RL,并重复上述过程,直到达到系统的某 一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,迸行一定的分析、过滤,并建立索引,以 便之后的査询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈 和指导。聚集爬虫的逻辑结构图,如图1-3所示。

...展开详情
试读 127P Python爬虫框架Scrapy_200页操作过程
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚积分or赚钱
最新推荐
Python爬虫框架Scrapy_200页操作过程 14积分/C币 立即下载
1/127
Python爬虫框架Scrapy_200页操作过程第1页
Python爬虫框架Scrapy_200页操作过程第2页
Python爬虫框架Scrapy_200页操作过程第3页
Python爬虫框架Scrapy_200页操作过程第4页
Python爬虫框架Scrapy_200页操作过程第5页
Python爬虫框架Scrapy_200页操作过程第6页
Python爬虫框架Scrapy_200页操作过程第7页
Python爬虫框架Scrapy_200页操作过程第8页
Python爬虫框架Scrapy_200页操作过程第9页
Python爬虫框架Scrapy_200页操作过程第10页
Python爬虫框架Scrapy_200页操作过程第11页
Python爬虫框架Scrapy_200页操作过程第12页
Python爬虫框架Scrapy_200页操作过程第13页
Python爬虫框架Scrapy_200页操作过程第14页
Python爬虫框架Scrapy_200页操作过程第15页
Python爬虫框架Scrapy_200页操作过程第16页
Python爬虫框架Scrapy_200页操作过程第17页
Python爬虫框架Scrapy_200页操作过程第18页
Python爬虫框架Scrapy_200页操作过程第19页
Python爬虫框架Scrapy_200页操作过程第20页

试读结束, 可继续阅读

14积分/C币 立即下载 >