Python,Scrapy 爬虫框架,简单入手的案例(适合初学者阶段入手的案例)

[项目目录]

  • 1) 分析目标网站
  • 2) 创建项目
  • 3) 保存数据csv

 1) 分析目标网站

目标网址

我们先分析页面是怎样的,这个网页比较简单,适合新手练练.

Python,Scrapy 爬虫框架,简单入手的案例(适合初学者阶段入手的案例)_第1张图片

        网页结构也比较简单,所以我们就用CSS来解析它,获取他的内容,作者.

没有安装的Scrapy框架的小伙伴,就先安装一下,命令

        pip install scrapy

也可以用下面的接口安装,比较快点.喜欢的小伙伴可以看看.

pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

成功之后就可以创建项目了.

2) 创建项目

不清楚的可以直接终端,或者编辑器终端运行scrapy

Python,Scrapy 爬虫框架,简单入手的案例(适合初学者阶段入手的案例)_第2张图片

我们执行命令创建项目

   scrapy startproject Dt_quotes

 scrapy genspider quotes_example quotes.toscrape.com

scrapy startproject 项目名

scrapy genspider 爬虫名 域名

就会自动给我们生成下面的内容

 Python,Scrapy 爬虫框架,简单入手的案例(适合初学者阶段入手的案例)_第3张图片

接下来就是我们最喜欢的操作了,桥代码,爬去内容,为了能否爬取到数据,我们严谨一点,用Scrapy框架带的Scrapy Shell做测试能不能返回数据,能不能提取到我们想要的数据,然后我们在写入我们的爬虫文件里.使用Scrapy Shell,要进入我们创建的项目目录下.

cd Dt_quotes

我先看一下状态码

response.status

 先获取内容

response.css('div.quote span.text::text').extract()

Python,Scrapy 爬虫框架,简单入手的案例(适合初学者阶段入手的案例)_第4张图片

 获取作者

response.css('div.quote small.author::text').extract()

 接下来我们要获取下一页链接

response.css('li.next a::attr(href)').extract_first()

这个链接不完整,我们需要让他完整利用 response.urljoin()

response.urljoin(url)

然后我们的任务就完成了,接下来就写入爬虫文件就行了

import scrapy

class QuotesExampleSpider(scrapy.Spider):
    name = 'quotes_example'
    allowed_domains = ['quotes.toscrape.com']
    start_urls = ['http://quotes.toscrape.com/']

    def start_requests(self):
        for url in self.start_urls:
            yield url

    def parse(self, response):
        quotes = response.css('div.quote span.text::text').extract()
        authors = response.css('div.quote small.author::text').extract()
        yield from (dict(zip(['author', 'quote'], item)) for item in zip(authors, quotes))

        next_url = response.css('li.next a::attr(href)').extract_first()
        if next_url:
            yield response.urljoin(next_url)

我们在终端输入命令执行

scrapy crawl quotes_example -o res.csv

Python,Scrapy 爬虫框架,简单入手的案例(适合初学者阶段入手的案例)_第5张图片

我们一个简单的scrapy项目已经完成.

 

你可能感兴趣的:(scrapy,python)