实战--Scrapy框架爬去网站信息

Scrapy的框架图

一、使用Strapy抓取网站一共需要四个步骤:

(1)创建一个Scrapy项目;

(2)定义Item容器;

 Item是保存爬取到的数据的容器,其使用方法和python字典类似,并且提供了额外保护机制来i避免拼写错误导致的未定义字段。

(3)编写爬虫;

        :在新建的dmoz_spider.py里面填写代码

     :在cmd控制器里面爬取,输入以下代码两句代码

        :爬取结果

    :再次编辑item.py,下图是理论基础

在cmd的控制器下进入shell,输入以下语句,其中的链接就是我所要爬取的其中一个页面

输出结果如下即为正确:

然后再箭头所指处可以输入response.body,就可以看到网页的所有内容,输入response.headers,就可以看到网页的头,但是想在网页的内容中找到自己想要的,就必须利用Selector选择器中的方法,例如XPath,XPath是一门再网页中查找特定信息的语言。所以用XPath来筛选数据,要比使用正则表达式容易些。如下图:

得到一个列表,对列表字符串化时利用extract(),如果只想要title里面的文字,直接在title后面加/text(),结果如下:

通过网站的审查元素我们可以知道,我们所需要的网站描述性内容都在ul中的li标签下,所以在cmd控制器下输出代码进行查找,如下图:

想看到标签里面的内容,如下:

如果想得到网站的标题,根据审查元素可以看到它们是在a标签下,具体执行如下:结果都是二进制显示

如果想获得所有网址的链接,具体执行如下:

下面是循环输出title

爬取指定位置的信息,修改dmoz_spider.py

在cmd控制器中输入scrapy crawl dmoz

爬取结果如下:

标题-链接-描述,由于是中文的原因,没有显示出来

(4)存储内容。

修改dmoz_spider.py,修改如下:

然后再cmd控制器下输入,如下图所示的第一行代码进行保存,-o后面是文件名,-t后面是保存的文件形式

然后再tutorial根目录下找到items.json,用记事本打开,里面就是我爬取的内容,有title标题,link链接,desc描述

到此,基于Scrapy框架的网页爬取就结束了。希望对各位有所帮助!

猜你喜欢

转载自blog.csdn.net/weixin_39338645/article/details/83108978