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

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

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

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

scrapy startproject 项目名

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

scrapy genspider abc_spider www.baidu.com

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

# -*- 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)运行爬虫

scrapy crawl 爬虫名

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

2 自定义抓取项

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

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

(2)改写parse函数

# -*- 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即可。

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

(4)运行爬虫
可以通过

scrapy list

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

猜你喜欢

转载自blog.csdn.net/xyz1584172808/article/details/78834799