Scrapy的框架图

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

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

(1)创建一个Scrapy项目;

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

(2)定义Item容器;

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

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

(3)编写爬虫;

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

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

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

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

        :爬取结果

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

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

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

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

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

输出结果如下即为正确:

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

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

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

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

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

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

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

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

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

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

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

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

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

下面是循环输出title

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

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

实战--Scrapy框架爬去网站信息在cmd控制器中输入scrapy crawl dmoz

爬取结果如下:

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

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

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

(4)存储内容。

修改dmoz_spider.py,修改如下:

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

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

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

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

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

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

 

 

 

相关文章:

  • 2021-12-10
  • 2021-12-19
  • 2021-04-07
  • 2021-05-16
  • 2021-06-15
  • 2022-12-23
  • 2021-05-19
  • 2021-07-08
猜你喜欢
  • 2022-12-23
  • 2021-12-26
  • 2021-11-02
  • 2021-09-14
  • 2022-12-23
  • 2021-12-30
相关资源
相似解决方案