V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Colorful
V2EX  ›  Python

在用 scrapy 写爬虫的时候,想爬 1 万条,实际只爬了 1000 条,如何解决

  •  1
     
  •   Colorful · 2020-03-12 10:00:50 +08:00 · 4634 次点击
    这是一个创建于 1719 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想问下,这个问题如何解决啊?

    用的是 mongo 数据库

    ITEM_PIPELINES 设的是 300

    29 条回复    2020-05-19 17:40:55 +08:00
    bnm965321
        1
    bnm965321  
       2020-03-12 10:05:25 +08:00
    看下停下来的原因是为什么
    bnm965321
        2
    bnm965321  
       2020-03-12 10:05:58 +08:00
    ITEM_PIPELINE 我记得是设置 优先级 的,就是这个 PIPELINE 优先被使用
    python30
        3
    python30  
       2020-03-12 10:16:12 +08:00
    是规则漏掉了那 9000
    还是其它什么原因。
    先少采点。
    采 100 条看看能实际采多少。
    这样分析就好办些了
    Colorful
        4
    Colorful  
    OP
       2020-03-12 10:26:24 +08:00
    @bnm965321 个人是比较菜的那种,不知道怎么看原因
    Colorful
        5
    Colorful  
    OP
       2020-03-12 10:26:43 +08:00
    @python30 采集 100-300 条数据是没问题的
    Colorful
        6
    Colorful  
    OP
       2020-03-12 10:27:09 +08:00
    @bnm965321 这个我不太理解
    littleylv
        7
    littleylv  
       2020-03-12 10:30:45 +08:00
    啥都别说,帖代码
    bnm965321
        8
    bnm965321  
       2020-03-12 10:36:30 +08:00
    @Colorful 看日志到第几页停下来的,看日志是不是列表页每个详情页都进去过
    IanPeverell
        9
    IanPeverell  
       2020-03-12 10:46:09 +08:00
    可以把每一次请求都打一个日志出来,看是到哪个断掉的。再看看有没有报错信息,是不是写数据过程出问题了,或者连接超时了,实在不行就写多个爬虫来处理,每个爬虫只请求 1000 个。
    sadfQED2
        10
    sadfQED2  
       2020-03-12 10:56:56 +08:00
    少量能抓到,大量抓不到,目测,你 ip 被封了
    aaa5838769
        11
    aaa5838769  
       2020-03-12 11:05:33 +08:00
    要不是代码,要不就是被检测到了。
    Colorful
        12
    Colorful  
    OP
       2020-03-12 11:18:01 +08:00
    @IanPeverell 怎么打印日志啊?
    IanPeverell
        13
    IanPeverell  
       2020-03-12 11:27:30 +08:00
    @Colorful scrapy.Spider 自带 logger,直接 self.logger.info()就可以。也有可能是请求过于频繁,可以在 settings 里面加上 AUTOTHROTTLE 的配置
    vindurriel
        14
    vindurriel  
       2020-03-12 11:39:54 +08:00
    感觉这个很适合做面试题啊
    q: Scrapy 爬虫的停止条件是 10k urls, 为什么爬到 1k 就退出了? db 用 mongo
    a: 我不可能知道 (只有这么点信息就能给出答案的就不用继续面了)
    q: 那我换一个问题 掌握哪些信息有助于知道呢?
    a: 你的输入条件(网站拓扑、配置详情、反爬规则),处理过程(代码、日志、系统事件),输出结果( 1k 的 urls 和剩下 9k 的异同)
    q: 这些信息的价值有没有主次之分?如果只能知道其中三个 你会选啥?
    a: 日志 配置 反爬规则
    q: 如果怀疑是被反爬规则 ban 掉了 如何验证或绕过?
    a: 换 ip,降频率,分批爬
    q: 如果让你写爬虫 如何设计日志 /接口 /配置项目 让使用者能更快地定位问题?
    a: ...(开始 freestyle )
    l4ever
        15
    l4ever  
       2020-03-12 12:27:31 +08:00   ❤️ 1
    我去, 这问题问的, 我都想骂人. BLOCK 带走.
    vcode
        16
    vcode  
       2020-03-12 12:34:56 +08:00
    简单,可以先用排除法,我们请楼下来排除一下
    jugelizi
        17
    jugelizi  
       2020-03-12 12:40:45 +08:00 via iPhone
    论提问的技巧
    Colorful
        18
    Colorful  
    OP
       2020-03-12 12:46:05 +08:00
    @vindurriel 涨知识了,感谢
    Colorful
        19
    Colorful  
    OP
       2020-03-12 12:46:29 +08:00
    @IanPeverell 懂了,谢谢
    lc7029
        20
    lc7029  
       2020-03-12 13:51:13 +08:00
    运行十次就好了
    Colorful
        21
    Colorful  
    OP
       2020-03-12 13:58:09 +08:00
    @lc7029 假如说 10 万条数据,那不是得运行 100 次?
    IGJacklove
        22
    IGJacklove  
       2020-03-12 14:28:11 +08:00
    爬虫违法吗?。。。现在在爬其他公司得视频信息。。。这个会不会出问题?
    xingshu1990
        23
    xingshu1990  
       2020-03-12 14:46:30 +08:00
    大概率是 IP 封了:建议能保证完全适配抓取的前提下,接入阿布云等 daili。
    no1xsyzy
        24
    no1xsyzy  
       2020-03-12 15:30:26 +08:00
    因为楼主描述太不清楚,导致我的老二被卡在电风扇里了
    somewhereinmars
        25
    somewhereinmars  
       2020-03-12 17:14:35 +08:00
    用 puppyteer 吧,属于前端模拟爬虫,更加容易突破,支持 js、python 各种扩展
    WoStaring
        26
    WoStaring  
       2020-03-12 17:16:28 +08:00
    再爬 9000 条
    chanywn1
        27
    chanywn1  
       2020-03-12 17:17:41 +08:00
    很简单,再爬 9 万条就可以了
    Elio
        28
    Elio  
       2020-03-13 10:01:02 +08:00
    这问题不问问你自己可惜了
    Skyline57
        29
    Skyline57  
       2020-05-19 17:40:55 +08:00
    @IGJacklove 绕过对方网站反爬手段就算违法,这得看对方发没发现,追不追究。当时用 selenium 那些模仿人浏览网站的行为好像不违法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3607 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:06 · PVG 19:06 · LAX 03:06 · JFK 06:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.