Autohome
Autohome基于Scrapy爬虫框架,实现对汽车之家-文章进行定向爬虫,并将抓取的数据存放进MongoDB中。后期将对抓取数据进行简单的分析以及 NLP 的工作。
运行环境
- Python 2.7.10
- MonogDB 3.2.10
- Scrapy 1.3.2
- pymongo 3.4.0
项目构成
│ readme.md
│ requirements.txt
│ scrapy.cfg
│
├─autohome
│ │ __init__.py
│ │ items.py
│ │ pipelines.py
│ │ settings.py
│ │
│ └─spiders
│ __init__.py
│ autohome_spider.py
│
└─support_file
├─architecture
│ autohome_architecture.png
│ autohome_architecture.vsdx
│
└─four_theme
autohome_four_theme.png
part1.png
part2.png
part3.png
part4.png
- autohome:是 Autohome 的程序的主要文件夹,主要的 Autohome 的代码都在里面,其中spiders子文件夹是 spider 的主程序
- support_file:Autohome 的支撑文件夹,只要存放说明相片以及原图片
- scrapy.cfg:Autohome 的配置文件夹
- requirements.txt:Autohome 依赖的第三方包的 requirements
使用方式
- 安装Pyhton以及MongoDB
- 启动 MongoDB
- 安装 Autohome 相关依赖。将 cmd 切换到 Autohome 根目录,运行
pip install -r requirements.txt
可能会提示pip 不是内部或外部命令,也不是可运行的程序或批处理文件。,请点这里解决相应问题
- 根据需要选择数据下载的方式,默认同时下载到 MongoDB 和本地 Json 文件中,可以通过修改Autohome/autohome/settings.py中 ITEM_PIPELINES 进行选择(两个同时写入可能会导致磁盘 I/O 过高)
- 在 Autohome 根目录运行
scrapy crawl autohome_article
运行 Autohome 爬虫,其中日志文件会以运行爬虫的时间为名称写入 Autohome 根目录中,Autohome 项目爬虫就会正常运行了
设计概览
爬虫设计概览
-
Autohome 抓取的是汽车之家-文章页面,整个爬虫部分分成四大主题,分别是:文章简介、文章详情、文章评论、评论文章的用户。爬虫的根节点其中四个部分的逻辑如下:

-
Autohome 基于Scrapy爬虫框架,对四大主题进行抓取,整个流程图如下,其中绿色部分是 Scrapy 原生框架的逻辑,蓝色部分是汽车之家-文章的爬虫逻辑

Features
- 全部基于 Scrapy 框架实现
- 定义两个 Pipeline 操作,分别是 AutohomeJsonPipeline,即本地 json 文件;以及 AutohomeMongodbPipeline,即存进 MongoDB。可以在
setting.py的ITEM_PIPELINES节点中设置启动的 Pipeline
TODO
- 编写 proxy 和 user agent 中间件
- 优化模拟登陆的抓取速度及完整度
- 对抓取的结构化数据进行分析
- 对抓取的非结构化数据分析
Change Log
- 20170531 将原来自定义模块的爬虫程序切换到 Scrapy 爬虫框架