码迷,mamicode.com
首页 > 其他好文 > 详细

Scrapy爬虫框架入门

时间:2018-07-03 20:14:56      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:框架   play   命令   awl   extra   通过   技术分享   三方   alt   

一、环境搭建

  Scrapy是一个比较好的爬虫框架,本次,我们学习一下,使用Scrapy框架来创建一个爬虫项目,并通过一个简单的例子演示一下。

第一步:安装依赖。首先先保证已经安装了python,pip。然后使用pip进行一下依赖的安装,顺序为:

1、wheel      2、  lxml     3、PyOpenssl      4、  Pywin32   5、scrapy

安装命令为:比如安装sheel:pip install sheel

当然,肯定没有那么容易就能安装成功了啦,由于版本不一致的原因,经常会导致我们安装第三方库的时候,失败,大致报错如下:

技术分享图片

出现这个问题的原因是,我们默认安装的第三方插件和python的版本不一致,因此我们需要自己去下一个正确的版本。

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

搜索到我们需要的插件,然后存放到某个目录下,然后再运行pip install wheel?0.31.1?py2.py3?none?any.whl就可以了。

二、创建Scrapy项目

  创建scrapy项目的命令依次如下:

1、创建一个项目 scrapy statrproject myproject

2、切换到myproject目录下 cd myproject

3、创建爬虫文件 scrapy genspider scrapyname  www.baidu.com

4、运行项目 scrapy crawl myproject

创建完之后,项目的目录结构如下:

技术分享图片

三、实例演示

   现在我们需要抓取网站http://lab.scrapyd.cn的数据,只需要在spiders目录下编写我们的爬虫逻辑即可。

技术分享图片

这里面的name和star_urls其实就是我们在创建的时候爬虫文件的时候传递的值。scrapy genspider mingyan2  lab.scrapyd.cn

爬虫的逻辑代码如下:

技术分享图片
 1 import scrapy
 2 
 3 from mingyan.items import MingyanItem
 4 class mingyan(scrapy.Spider):  # 需要继承scrapy.Spider类
 5 
 6     name = "mingyan2"  # 定义蜘蛛名
 7     start_urls = [
 8         http://lab.scrapyd.cn,
 9 
10     ]
11 
12     def parse(self, response):
13         item = MingyanItem()
14         quotes = response.css(div.quote)
15         for quote in quotes:
16             item[text] = quote.css(.text::text).extract()[0]
17             item[author] = quote.css(.author::text).extract()[0]
18             item[tags] = quote.css(.tag::text).extract()
19             yield item
20         nextpage = response.css(li.next a::attr(href)).extract()[0]
21         if nextpage is not None:
22             yield scrapy.Request(nextpage,callback=self.parse)
View Code

如果我们想让抓取的数据以不同的格式存储时,只需要在命令行运行的时候增加-o参数即可,例如想要抓取的数据以json的格式存储,命令如下:

技术分享图片

生成的数据文件为json数组的形式:

技术分享图片

Scrapy爬虫框架入门

标签:框架   play   命令   awl   extra   通过   技术分享   三方   alt   

原文地址:https://www.cnblogs.com/win0211/p/9260056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!