scarpy是python爬虫界最著名的框架,最近使用了下确实很方便,其底层使用的Twisted使用异步非阻塞的方式速度是相当的快(比自己用requests快多了),这里介绍下使用scarpy框架爬取文章和图片,并进行二层爬取文章的内容,然后以dict形式保存为json文件(也可以保存到其他存储介质,如数据库,其他文件存储介质)
环境: python3.7 scarpy1.7.3 都是当前最新版
安装: pip install scrapy=1.7.3
创建项目: scrapy startproject demospider
一. 定义item(爬取的数据结构)
编辑items.py文件,定义各项数据
二. 定义爬取方法
这是最关键的一步,在这里将会解析获取到的html文本,使用scarpy自带的selector解析获取需要的数据。关于selector语法比较多,官方并没有给过多案例,推荐 https://www.jianshu.com/p/489c5d21cdc7, 虽然没有过多例子,但是理论比较全,想要的方法基本都可以找到。
在spider目录下新建demo_spider.py文件
环境: python3.7 scarpy1.7.3 都是当前最新版
安装: pip install scrapy=1.7.3
创建项目: scrapy startproject demospider
一. 定义item(爬取的数据结构)
编辑items.py文件,定义各项数据
点击(此处)折叠或打开
- import scrapy
-
-
- class TutorialItem(scrapy.Item):
- # define the fields for your item here like:
- # name = scrapy.Field()
- link = scrapy.Field()
- title = scrapy.Field()
- text = scrapy.Field()
- image_url = scrapy.Field()
- author = scrapy.Field()
- image_paths = scrapy.Field()
这是最关键的一步,在这里将会解析获取到的html文本,使用scarpy自带的selector解析获取需要的数据。关于selector语法比较多,官方并没有给过多案例,推荐 https://www.jianshu.com/p/489c5d21cdc7, 虽然没有过多例子,但是理论比较全,想要的方法基本都可以找到。
在spider目录下新建demo_spider.py文件
点击(此处)折叠或打开
- import scrapy
- from demospider.items import TutorialItem
-
-
-
-
- class ImageSpider(scrapy.Spider):
-
- name = 'imagespider' # 应用名,执行时使用
- start_urls = [
- 'http://www.itpub.net/category/yunwei/' # 可以写多个,分别进行爬取处理
- ]
-
- def parse(self, response): #固定方法,response为每次处理后返回的html,这里主要处理采集第一层页面的数据
- for article