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

pyspider 是弃坑了么..有啥类似的集成式的爬虫框架推荐不

  •  
  •   l0wkey · 2022-04-18 17:26:09 +08:00 · 2105 次点击
    这是一个创建于 950 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想写个小爬虫, 几年前用的 pyspider 感觉很方便(主要是集成度高,比如 webui/在线调试 /结果存储之类)。

    当然 scrapy 也可以通过各个第三方配出来,但是写点小项目太庞大和复杂了写。
    8 条回复    2022-04-19 10:47:46 +08:00
    mywaiting
        1
    mywaiting  
       2022-04-18 18:14:41 +08:00
    爬虫不都是 requests 一把梭,一连串的 if else 就写完了么?
    l0wkey
        2
    l0wkey  
    OP
       2022-04-18 19:41:35 +08:00 via iPhone
    @mywaiting 爬多个站,不好管理...
    mimzy
        3
    mimzy  
       2022-04-18 20:47:39 +08:00
    @binux 尝试召唤
    binux
        4
    binux  
       2022-04-19 01:10:51 +08:00 via Android
    因为之后我自己也没有使用场景,就没有维护了。
    Kobayashi
        5
    Kobayashi  
       2022-04-19 05:49:38 +08:00 via Android
    这还用选吗,当然是 Scrapy 。爬虫不需要可视化,这是伪需求,懂 XPath 和 CSS 选择器语法就够了。
    说 requests 的可能是没写过大量爬虫,爬虫从来都不是一个 HTTP 下载+HTML 解析问题。当你做大量爬取时,你要考虑各种其他设计:
    1. 队列,生成的待爬取 URL 越来越多,需要队列存储待爬
    2. 队列是支持先入先出还是先入后出,直接对应深度优先爬取和广度优先爬取
    3. 爬取中断了如何恢复,是支持队列固化还是使用 Redis 做队列
    4. 如何针对被爬 URL 去重,同样去重指纹怎么固化
    5. 避免频率过高爬取时,钱多直接上代理池,免费先做并发控制、人工时延。或者多开几台机器搞分布式。
    6. 人工时延是针对 IP 还是 host ,要不要加随机抖动
    7. 如果不考虑 IP 被封,高并发爬取是线程池还是异步。
    8. 对于偶发的网络问题导致的 HTTP 请求失败,要不要加入自动重试。
    9. 或者更扯淡一点,为了避免发散爬取时进入对方蜜罐爬取大量无用连接,耗尽连接池。如何做深度控制。
    10. ……
    还有各种各样的问题,Scrapy 和 Scrapy 插件提供了现成的解决方案。
    l0wkey
        6
    l0wkey  
    OP
       2022-04-19 10:23:16 +08:00
    @Kobayashi #5 嗯 我主要是觉得 scrapy 太重了.. 写个小爬虫的情况下,比如之前 pyspider 写个小爬虫连存储都不需要自己搞。scrapy 肯定可以实现,但是多数情况下都需要单独选择插件,集成再测试
    Kobayashi
        7
    Kobayashi  
       2022-04-19 10:36:49 +08:00
    嗯…… cookiecutter 配合 Scrapy 搭个脚手架,或者反过来配合 requests/httpx/aiohttp 搭个脚手架?
    实话说,我尝试过的爬虫框架也不多,有时间你可以去尝试一些新框架。先帮你排个雷:ruia 。国人搞得自称 asyncio 版 scrapy ,读过二者源码,只能说借鉴了几个类名,框架运行逻辑完全不像,扩展程度天壤之别。
    l0wkey
        8
    l0wkey  
    OP
       2022-04-19 10:47:46 +08:00
    @Kobayashi #7 嗯...这次准备还是先用 @binux 大佬的 pyspider + 老版本 Python 跑起来凑合凑合了..
    如果时间精力允许情况下,确实搭一套顺手的脚手架是合适的..
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1000 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.