scrapy抓取quote使用案例

创建工程
scrapy  startproject scrapy_test 
目录结构
├── scrapy.cfg
└── scrapy_test
    ├── __init__.py
    ├── items.py
    ├── middlewares.py
    ├── pipelines.py
    ├── settings.py
    └── spiders
        ├── __init__.py
        └── quotes.py
主要文件的作用:
scrapy.cfg :项目的配置文件

scrapy_test/ :项目的Python模块,将会从这里引用代码

scrapy_test/items.py :项目的目标文件(可以理解为model)

scrapy_test/pipelines.py :项目的管道文件

scrapy_test/settings.py :项目的设置文件

scrapy_test/spiders/ :存储爬虫代码目录
创建爬虫
cd scrapy_test
scrapy genspider [名字] [爬取网址]

爬虫文件变量和方法说明
  • name = “” :这个爬虫的识别名称,必须是唯一的,在不同的爬虫必须定义不同的名字
  • allow_domains = [] 是搜索的域名范围,也就是爬虫的约束区域,规定爬虫只爬取这个域名下的网页,不存在的URL会被忽略。
  • start_urls = () :爬取的URL元祖/列表。爬虫从这里开始抓取数据,所以,第一次下载的数据将会从这些urls开始。其他子URL将会从这些起始URL中继承性生成。
  • parse(self, response) :解析的方法,每个初始URL完成下载后将被调用,调用的时候传入从每一个URL传回的Response对象来作为唯一参数,主要作用如下:

负责解析返回的网页数据(response.body),提取结构化数据(生成item)
生成需要下一页的URL请求。

运行
scrapy crawl quotes

同时框架还提供了基于ipython的交互模式,通过 scrapy shell进入交互

scrapy shell [网址]

[s] Available Scrapy objects:
[s]   scrapy     scrapy module (contains scrapy.Request, scrapy.Selector, etc)
[s]   crawler    <scrapy.crawler.Crawler object at 0x104196978>
[s]   item       {}
[s]   request    <GET http://quotes.toscrape.com>
[s]   response   <200 http://quotes.toscrape.com>
[s]   settings   <scrapy.settings.Settings object at 0x1051968d0>
[s]   spider     <QuotesSpider 'quotes' at 0x10543b198>
[s] Useful shortcuts:
[s]   fetch(url[, redirect=True]) Fetch URL and update local objects (by default, redirects are followed)
[s]   fetch(req)                  Fetch a scrapy.Request and update local objects 
[s]   shelp()           Shell help (print this help)
[s]   view(response)    View response in a browser



In [1]: response
Out[1]: <200 http://quotes.toscrape.com>

In [2]: response.text
Out[2]: '<!DOCTYPE html>\n<html lang="en">\n<head>\n\t<meta charset="UTF-8">\n\t<title>Quotes to Scrape</title>\n    <link rel="stylesheet" href="/static/bootstrap.min.css">\n 

In [5]: response.css('.quote .text::text').extract()
保存结果

scrapy保存信息支持多种格式
'json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle'
主要介绍四种

# json 格式 默认为Unicode编码
scrapy crawl quotes -o quotes.json

# jsonline 格式 默认为Unicode编码
scrapy crawl quotes -o quotes.jsonl

# csv 可用excel打开
scrapy crawl quotes -o quotes.csv

# xml 
scrapy crawl quotes -o quotes.xml

# 将数据直接发送到服务器上
scrapy crawl quotes -o ftp://user:pass@www.example.com/path/quotes.csv
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值