内网如何使用webcontroller 爬虫框架_python爬虫框架:Scrapy框架基本使用

1.分析页面确定爬取思路

我们要抓取的页面很简单如下所示:

c09aa406d00caeb3649f676708f62085.png

首先页面没有使用任何的动态加载的技术,我们能够使用正则直接匹配,另外我们翻页也能够使用改变 url 的 offset 来实现

b715a7af7bf4efdb5b67590bdedc7340.png

思路梳理:

(1)请求第一页得到源代码进行下一步分析

(2)获取首页内容并改变 URL 链接准备下一页的请求

(3)获取下一页源代码

(4)将结果保存为文件格式或者存储进数据库

3.scrapy 的初次使用

创建项目

>>scrapy startproject quotetutorial

>>cd quotetutorial

>>scrapy genspider quotes quotes.toscrape.com

使用 pycharm 打开项目

6ded6151b01ddfec23010e00f2467081.png

定义存储结构

e689241bb8b8652531d67a170c6f85b1.png

编写页面解析函数

615a3d9af9d0676f053b25bd4c21a371.png

使用 scrpay shell 进行交互测试

>>scrapy shell quotes.toscrape.com

fa1087c886cfd9d90d6f1ab7b9e2bc6a.png

运行我们的“简陋”的爬虫

>>scrapy crawl quotes

5e20c4a14e2013efbaeaacda0f008177.png

我们可以看到我们想要抓取的第一页的结果已经大致上输出了

完善我们的爬虫实现每一页的抓取

5ed1de48682b777f729af996b7bbe832.png

将我们爬取到的数据保存

>>scrapy crawl quotes -o quotes.json

38277077def6f97edb4b02694d6c7b27.png

除了能保存成 json 后缀的文件以外,我们还能保存成 jl(jsonline,每一行都是一条 json ),或者是 csv 格式,再或者是 xml 格式等,甚至还支持保存到远程 ftp 服务器的形式

-o ftp://user:pass@ftp.example.com/path/quotes.json

对获取到的数据进行其他的处理

如果有一些 item 是我们不想要的,或者是我们想把 item 保存到数据库的话,上面的方法似乎就不是那么适用了,我们就要借助于 scrapy 给我们提供的另一个组件 pipelines.py 帮我们实现

比如我们现在有这样的需求,我们想把名言超出我们规定的长度的部分删除,并且加上三个省略号

b4434136b9c0efeb906a7ef91df2abf8.png

另外我们如果还想存储进数据库的话,我们还要自己写一个 pipeline

c0ed9f5c4c4ae57d6a609d8bba1d72be.png

数据库的设置我们需要在 settings.py 中添加配置项

MONGO_URL = 'localhost'

MONGO_DB = 'quotes'

然后是我们需要在 settings.py 中开启启动 pipeline 的选项,使我们的配置生效

6806d7c32153fc23c929d1b92afd283c.png

2.最终代码实现

quotes.py

6816ca4b01236dd244248e1f5ef22d61.png

items.py

2a3a86cf46aa8954b9152193e57fa2d4.png

pipelines.py

844644ffd63aeff155f0fcdfd8ffd983.png

3.最终运行效果

52313934dcea97eb6af9194815666685.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值