Scrapy 使用示例:从 Xpath 到 Webdriver

本文用于以后快速创建爬虫项目
误点进来的朋友可以关闭了,因为本文没有啥价值?

准备

pip install scrapy
pip install selenium
下载 chrome webdriver,放在环境变量里

scrapy shell 或 控制台

打开要爬取的网站,命令行输入
scrapy shell your-url
如果爬取的是动态页面、QQ空间一类需要登陆的网站,则打开浏览器的控制台。
命令行使用:response.xpath(‘RULE’).extract()
浏览器使用:$x(‘RULE’)
这里的 RULE 是 xpath 规则,自行百度学习 xpath 语法

至此,已获得网站里你需要的内容的 xpath,可以开始写代码了。

开始写代码

创建项目

命令行 scrapy startproject project-name
cd 进去,开始爬是 scrapy crawl spider-name ,当然现在还没写代码,先放着

工作流程

不知道从哪说起,先看着目录说一下 scrapy 工作流程:

从最初定义的 起始 url 开始,请求这个网页,返回网页的body,这个body默认是直接请求返回的,也可以在 middleware.py 中,使用中间层软件如 Chromedriver 获得网页内容,然后返回 body

数据流到 spider.py 中的 parse 函数,在parse函数中处理网页的 body,解析出我们想要的数据,作为各个成员封装为一个item,item 的格式声明在 items.py

item yield 之后,流到了 pipelines.py,这个文件对来到的 item 进行筛选、丢弃或存入数据库或写入文件中,可以下载图片等等。

项目的一些配置存放在 settings.py

各个文件各司其职,条理清晰,很友好

动手

在 project/spiders/ 目录下创建一个文件 MySpider.py
文件包含一个MySpider类,它必须继承scrapy.Spider类,然后实现 parse 成员方法。
要有以下成员:…

items.py 中创建一个类,继承自 scrapy.Item,成员全部声明为
var1 = scrapy.Field() 这种形式,这个类的成员就是需要爬取的数据模型,比如文章标题、内容等。

pipelines.py 中是对数据的处理,
烦了,不想写了,以后再改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章