使用 scrapy 爬取 stackoverflow 上的所有 Python 问答 by 帅彬Posted on2019-10-162020-02-12 前两天 小帅b跟你 说了说分布式爬虫 在里面我就说到 弄个例子来体现一下分布式爬虫 在此之前 我们可以先写一个单机版的爬虫 往后再对其修改一些配置 就可以搞成分布式的了 所以这次我们先 爬取 stackoverflow 上的 所有 Python 问答 那么接下来就是 学习 Python 的正确姿势 别问我为什么不爬取国内的网站 打开 https://stackoverflow.com/questions/tagged/python 简单分析一下这个页面 我们就去抓取每一个 item 里面的 问题 votes answers views 链接 待会根据 xpath 获取就可以了 那我们先创建一个工程吧 打开 items.py 定义一下我们要获取的字段 接着在 spider 创建一个文件 我们就叫做 stackoverflow-python-spider.py 创建一个继承 scrapy 的 spider 类 接着定义一下请求链接的方法 在这里我们可以看到 每个页面的请求链接是这样的 那么我们可以这样构建 接着我们定义一下回调的解析方法 根据每个元素的 xpath 和我们刚刚定义的字段结合起来 接着就可以在 pipelines 中 配置链接数据库了 这里我们使用 MongoDB 主要是初始化的时候链接数据库 在解析过程把数据和保存到数据库 在 settings 中需要配置下 顺便配置一下“狗头” 当然如果你的破网访问不了 stackoverflow 的话 自行设置下代理 最后开启你的 MongoDB 执行以下命令开始爬取 scrapy crawl stackoverflow-python 这样就把数据爬取到你的数据库了 ok 以上就是本次分享的内容 希望对你有帮助 如果你需要源码的话 可以在公众号后台 发送 “111” 获取 下次我们继续盘它 那么我们下回见了 peace 扫一扫 学习 Python 没烦恼 原文始发于微信公众号(学习python的正确姿势):python