Scrapy(一)安装&简单实用
环境安装 Scrapy创建项目编写项目运行项目
环境
Python 3.7.4pip 19.3.1Scrapy 1.8.0
安装 Scrapy
pip
--version
pip install scrapy
创建项目
scrapy startproject scrapyone
目录结构
编写项目
编写一个 spider 去获取网站 quotes.toscrape.com 的内容打开 quotes.toscrape.com 网站观察 html 源码,关键信息是:(1)名言,(2)作者,(3)标签,(4)下一页。需求是获取所有关键信息,并且自动获取下一页
// 名言
<div class="quote" ...
<span class="text" ...
"名言XXXX"
// 作者
<span>
<small class="author">
timing
// 标签
<div class="tags">
<a class="tag" href="XXXX">
<a class="tag" href="xxxx">
// 下一页
<nav>
<ul class="pager">
<li class="next">
<a href="下一页">
添加文件 /spiders/quotes_spider.py
import scrapy
class QuotesSpider(scrapy
.Spider
):
name
= "quotes"
start_urls
= [
'http://quotes.toscrape.com/page/1/'
]
def parse(self
, response
):
for quote
in response
.css
('div.quote'):
yield {
'text': quote
.css
('span.text::text').extract_first
(),
'author': quote
.css
('small.author::text').extract_first
(),
'tags': quote
.css
('div.tags a.tag::text').extract_first
(),
}
next_page
= response
.css
('li.next a::attr(href)').extract_first
()
if next_page
is not None:
next_page
= response
.urljoin
(next_page
)
yield scrapy
.Request
(next_page
, callback
=self
.parse
)
运行项目
在项目的根目录 /scrapyone 运行一下命令
//命令, 指定 spider 的名字, 输出结果
scrapy crawl quotes -o quotes.json
在当前项目目录下会有个一个 quotes.json 的结果文件