Scrapy:Hello World

来自WHY42
imported>Soleverlee2017年1月11日 (三) 06:39的版本 →‎运行
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

创建项目

scrapy startproject riguz

生成的项目如下:

E:.
│  scrapy.cfg
│
└─riguz
    │  items.py
    │  middlewares.py
    │  pipelines.py
    │  settings.py
    │  __init__.py
    │
    └─spiders
            __init__.py

创建爬虫

在spiders文件夹下面新建一个文件,例如hello_spider.py:

import scrapy
class QuotesSpider(scrapy.Spider):
    name = "helloworld"
    
    def start_requests(self):
        urls = [
            'https://quotes.toscrape.com/page/1/',
            'http://quotes.toscrape.com/page/2/',
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)
    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'quotes-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)

运行

cd riguz
scrapy crawl helloworld -s LOG_FILE=scrapy.log

运行结果为两个下载的页面:

│  quotes-1.html
│  quotes-2.html
│  scrapy.cfg