模板下载免费网站,不备案怎么做淘宝客网站吗,城关区建设局网站,郑州联通网站备案大家用过谷歌#xff0c;百度吧。这类搜索引擎是怎么对外提供服务的呢#xff1f;显然#xff0c;这不是本文要说的事情。但是#xff0c;任何一个搜索引擎#xff0c;都缺不了网页收录这个步骤#xff0c;所以网络爬虫是搜素引擎最重要#xff0c;也是最基本的组成部分…大家用过谷歌百度吧。这类搜索引擎是怎么对外提供服务的呢显然这不是本文要说的事情。但是任何一个搜索引擎都缺不了网页收录这个步骤所以网络爬虫是搜素引擎最重要也是最基本的组成部分。那么我们每个人其实都可以写一个简单的网络爬虫用来爬你自己喜欢的东西你懂的。那么我们就废话少说开始吧。网络爬虫(网络蜘蛛)经常被人们认为是一项特别强大而实用的工具用来从网上搜集各种不同的数据。其实它的本质就是通过编程的手段来访问一系列不同的网页并抽取页面中的数据信息。利用网络爬虫我们可以搜集文本图片以及其他类型的数据。而这些事情并不需要通过你要访问的网站提供官方的API你只需要模拟浏览器的行为来达到这个简单的目的。在这里你会了解到网络爬取信息的基本概念和组成部分。我们也会用Quotes to Scrape(http://quotes.toscrape.com/)作为例子来了解如何抽取这个网站上面我们所关心的数据。跟着一路走下来你会完成一个简单的网络爬虫它的功能就是爬取Quotes to Scrape(http://quotes.toscrape.com/)的页面并且抽取我们所关心的数据。热身热身既然安装完了Python下面就来看看如何创建一个简单的爬虫。创建爬虫有好多方式条条大路通罗马。但是我们想走效率高的不绕弯的不掉坑里的一条路。开源社区有很多不错的选择在这里我选用的是Scrapy框架。Scrapy帮助我们解决了绝大部分的繁琐事情让我们真正专注于要关心的逻辑也就是你要爬取哪些页面抽取哪些数据并如何存储它们。如何安装Scrapy非常简单打开Shell或者命令行窗口运行下面的命令$pip install scrapy如上图所示Scrapy安装成功了。我们可以运行一个简单的命令来检验一下Scrapy是否可以正常工作。运行如下命令是否返回HTML的内容。如果能够返回HTML页面的信息则说明scrapy工作正常。接下来我们可以创建一个文件夹用来保存我们的爬虫类。运行下面的命令创建一个文件夹$mkdir scrapy-spiders进入你刚创建的文件夹$cd scrapy-spiders创建一个新的Python文件(用你自己喜欢的文本编辑器我这里用的是VIM)文件名称叫quotespider.py。$vim quotespider.py我们通过创建一个scrapy.Spider的派生类来达到简化繁琐工作的目的。大部分的工作已经被包含在scrapy.Spider这个类当中了这个类是scrapy框架提供的。我们需要修改其中的属性就可以达到自定义的目的。这里我们为了简化和演示的目的仅仅修改两个属性name和start_urls。name--- 给你的网络爬虫起一个名字start_urls--- 网络爬虫从哪个网址开始爬取可以是一个网址也可以是一批网址修改之后的quotespider.py文件内容如下让我们简单地逐行说明一下程序代码的意思。首先我们在程序第一行中引入scrapy框架。然后我们在第二行创建了一个名字叫做QuoteSpider的类。这个类是scrapy.Spider的子类。接着我们在第三行第四行修改了name和start_urls的属性。好啦我们第一步的任务结束啦。现在可以运行一下看看结果是什么。大家看到红线的部分返回值是200证明我们成功地爬取了网址。但是下面有错误原因是蓝线的部分造成的。下面将在第二部分修正这个部分。实现一个parse的方法来告诉爬虫当成功爬取了网址之后我们需要如何解析这个网页的内容。也就是如何抽取页面当中我们关心的数据。在实现如何解析页面之前让我们看一下页面的结构从而发现在哪里可以找到我们关心的数据。借助Chrome的开发者工具我们可以定位到我们需要抽取的信息节点的位置。假设我要抽取每段的名句并不关心作者是谁。用开发者工具我找到了这个信息在HTML文档DOM树中的结点位置。那么我就可以用scrapy框架自带的CSS或者XPath选择器来选中我关心的结点然后读取里面的文本值。修改之后的quotespider.py文件内容为运行一下程序结果如下假如进一步我们需要把作者信息也抽取出来那么我们只需要再多加一行代码来读取作者的信息。运行结果就会包含作者信息了。到目前为止你已经会爬取一个单独的页面并且可以抽取你想要的信息了。如果我们想抽取的信息是保存在页面中某个超链接里面呢那就需要进一步访问那个超链接去获得进一步的信息。下一步介绍如果继续访问页面中的超链接你其实也应该想得到跟访问一个页面是同样的。只需要获得那个超链接的网址爬取那个页面并按照刚才的步骤去解析网页就好了。我们观察到每一句名言下面都有作者作者的后面跟着一个超链接用来介绍作者的详细信息。那么就可以通过CSS选择器选中超链接并且访问那个超链接。对于超链接返回的页面可以自定义一个专门用来解析作者详细信息的方法叫做parse_author。那么就很容易抽取我们想要的作者详细信息了。下面是修改之后的quotespider.py文件内容在代码中可以看到通过.authora::attr(href)选中了超链接的相对地址然后调用response.follow方法并设置parse_author作为解析页面的方法。parse_author的方法内部对三个页面标签做了抽取他们是名字出生日期和出生地点。运行一下程序结果如下从程序输出结果来看我们成功的抽取了超链接的内容。根据这个思路可以设计一个比较复杂的爬虫来爬取这个网站的所有页面并把相关的数据保存下来。关于如何保存成不同类型的文件而不是输出到shell或者控制台中可以实用命令行参数-o比如下面就是一个输出成JSON的例子。Scrapy还支持多种文件格式比如csvJSON LinesXML。$scrapy runspider quotespider.py -o crawlresult.json到这里就介绍完了如何创建一个简单的爬虫。参考链接Scrapy Library: https://doc.scrapy.org/en/latest/intro/overview.html