V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhongjiajie
V2EX  ›  问与答

Scrapy 汽车之家定向爬虫, gayhub 求赞

  •  
  •   zhongjiajie · 2017-07-26 21:30:11 +08:00 · 1434 次点击
    这是一个创建于 2680 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    使用方式

    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 抓取的是汽车之家-文章页面,整个爬虫部分分成四大主题,分别是:文章简介、文章详情、文章评论、评论文章的用户。爬虫的根节点其中四个部分的逻辑如下: image

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

    Features

    • 全部基于 Scrapy 框架实现
    • 定义两个 Pipeline 操作,分别是 AutohomeJsonPipeline,即本地 json 文件;以及 AutohomeMongodbPipeline,即存进 MongoDB。可以在setting.pyITEM_PIPELINES节点中设置启动的 Pipeline

    TODO

    • 编写 proxy 和 user agent 中间件
    • 优化模拟登陆的抓取速度及完整度
    • 对抓取的结构化数据进行分析
    • 对抓取的非结构化数据分析

    Change Log

    • 20170531 将原来自定义模块的爬虫程序切换到 Scrapy 爬虫框架
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5928 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:54 · PVG 09:54 · LAX 17:54 · JFK 20:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.