scrapy-02:创建工程项目的简单步骤

前面看了一个爬虫的小例子,那么接下来就;来看看创建一个爬虫的步骤有哪些。

1 创建工程项目的简单步骤

(1)开始一个爬虫项目
进入一个你要创建爬虫的目录下面,在命令行窗口中执行如下代码:

1
scrapy startproject 项目名

其中项目名改成你将要创建的项目的名称
项目创建好了以后,进入该项目,可以看到如下的目录结构(其中tutorial是创建的项目名)
image
(2)创建一个spider文件模板
首先进入项目文件里,在项目文件里用命令行执行

1
scrapy genspider abc_spider www.baidu.com

命令行的第三个串是要创建的spider的名字,第四个是要爬取网页的链接地址。
这时,进入项目文件下的spider目录里面,就会发现一个abc_spider.py文件,这个就是创建的文件模板,用IDE打开,修改其内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
import scrapy


class AbcSpiderSpider(scrapy.Spider):
name = 'abc_spider'
allowed_domains = ['www.baidu.com']
start_urls = ['http://www.baidu.com/']

def parse(self, response):
#定义文件名
filename=response.url.split('/')[-2]+"html"
#打开文件并写入源代码
with open(filename,"wb") as fp:
fp.write(response.body)

(3)运行爬虫

1
scrapy crawl 爬虫名

于是就能看到一个html的文件。

2 自定义抓取项

(1)打开项目中的item.py文件,按照说明进行改写。

1
2
3
4
5
class FirstspiderItem(scrapy.Item):
# define the fields for your item here like:
title = scrapy.Field()
desc = scrapy.Field()
link=scrapy.Field()

(2)改写parse函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# -*- coding: utf-8 -*-
import scrapy
from firstspider.items import FirstspiderItem

class AbcSpiderSpider(scrapy.Spider):
name = 'abc_spider'
allowed_domains = ['www.baidu.com']
start_urls = ['http://www.baidu.com/']

def parse(self, response):
# #定义文件名
# filename=response.url.split('/')[-2]+"html"
# #打开文件并写入源代码
# with open(filename,"wb") as fp:
# fp.write(response.body)
#通过xpath获取要抓取的内容
lis=response.xpath('//*[@id="head"]')
for li in lis:
#在这之前需要引入
item=FirstspiderItem()
#xpath百度首页不好举例
item['title']=li.xpath('xpath路径').extract()
item['link']=li.xpath('xpath路径').extract()
item['desc'] = li.xpath('xpath路径').extract()
#返回item
yield item

(3)改写pipeline文件
这里不做修改,只是返回item即可。

1
2
3
class FirstspiderPipeline(object):
def process_item(self, item, spider):
return item

(4)运行爬虫
可以通过

1
scrapy list

来获取项目里面所包含的爬虫,然后运行你要执行的爬虫。抓取得结果一般情况下是存放在数据库中。