点击“简说Python”,选择“星标公众号”

福利干货,第一时间送达!

使用 scrapy 爬取 stackoverflow 上的所有 Python 问答

大家好,我是老表
阅读文本大概需要 5 分钟
今天,给大家分享个爬虫实战案例。
如果你此前从未听说Scrspy
我建议你先看一下我下面的几篇文章

Scrapy入门知识要点









使用 scrapy 爬取 stackoverflow 上的所有 Python 问答

在此之前
我们可以先写一个单机版的爬虫


往后再对其修改一些配置
就可以搞成分布式的了


所以这次我们先
爬取 stackoverflow 上的
所有 Python 问答


使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




那么接下来就是

别问我为什么不爬取国内的网站


使用 scrapy 爬取 stackoverflow 上的所有 Python 问答

打开

https://stackoverflow.com/questions/tagged/python


使用 scrapy 爬取 stackoverflow 上的所有 Python 问答





简单分析一下这个页面



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答





我们就去抓取每一个 item 里面的


问题
votes
answers
views
链接


待会根据 xpath 获取就可以了


那我们先创建一个工程吧



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




打开 items.py 
定义一下我们要获取的字段



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




接着在 spider 创建一个文件
我们就叫做
stackoverflow-python-spider.py


创建一个继承 scrapy 的 spider 类



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答


 


接着定义一下请求链接的方法
在这里我们可以看到
每个页面的请求链接是这样的



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答





那么我们可以这样构建



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




接着我们定义一下回调的解析方法
根据每个元素的 xpath
和我们刚刚定义的字段结合起来



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答





使用 scrapy 爬取 stackoverflow 上的所有 Python 问答





接着就可以在 pipelines 中
配置链接数据库了
这里我们使用 MongoDB



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




主要是初始化的时候链接数据库
在解析过程把数据和保存到数据库



在 settings 中需要配置下



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




顺便配置一下“狗头”



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




当然如果你的破网访问不了
stackoverflow 的话
自行设置下代理



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




最后开启你的 MongoDB
执行以下命令开始爬取

 scrapy crawl stackoverflow-python



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答

使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




这样就把数据爬取到你的数据库了


使用 scrapy 爬取 stackoverflow 上的所有 Python 问答




ok
上就是本次分享的内容
希望对你有帮助


如果你需要源码的话
可以在公众号后台
发送111 获取


——本文完——



使用 scrapy 爬取 stackoverflow 上的所有 Python 问答
今日留言主题
说说你读完本文感受?
或者一句激励自己的话?
(字数不少于15字)
说明
今天是留言打卡第十一天
简说Python,等你~


2小时快速掌握Python基础知识要点

完整Python基础知识要点


使用 scrapy 爬取 stackoverflow 上的所有 Python 问答
学Python | 聊赚钱

使用 scrapy 爬取 stackoverflow 上的所有 Python 问答
给个[在看]

相关文章: