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
egrcc
V2EX  ›  Python

用 python 做爬虫,遇到的问题

  •  
  •   egrcc · 2014-12-17 12:41:05 +08:00 via Android · 5374 次点击
    这是一个创建于 3634 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用python做了一个爬知乎的项目,地址在这里: https://github.com/egrcc/zhihu-python
    有几个问题想请教一下大家。有没有办法,在不模拟登录的情况下,取得某个问题下的所有回答?
    这个项目用到了beautiful soup,但速度实在是很慢,有没有什么其他的库,解析html速度更快一点的?另外,如果要大规模部署的话,是不是用scrapy这个框架更好?
    14 条回复    2014-12-17 18:05:12 +08:00
    hadoop
        1
    hadoop  
       2014-12-17 13:22:31 +08:00
    怎么解决知乎验证码的问题
    EPr2hh6LADQWqRVH
        2
    EPr2hh6LADQWqRVH  
       2014-12-17 13:26:56 +08:00
    bs4的解析效率和xml解析器有关的啊,你装个lxml效率倍增。
    而且你多开几个进程不就完了。。这种io指向的情景甚至多开线程都行吧
    egrcc
        3
    egrcc  
    OP
       2014-12-17 13:33:07 +08:00 via Android
    @hadoop 登录不一定需要验证码,只有登录错误时,再次登录需要验证码。只要登录正确,下次登录是不需要验证码的
    invite
        4
    invite  
       2014-12-17 13:35:22 +08:00
    请求多了,小心IP被封。哈哈。
    egrcc
        5
    egrcc  
    OP
       2014-12-17 13:41:50 +08:00 via Android
    @invite 不会吧,这么严重?
    invite
        6
    invite  
       2014-12-17 13:43:54 +08:00
    @egrcc 你以为爬虫那么好当的?
    iewgnaw
        7
    iewgnaw  
       2014-12-17 13:44:39 +08:00
    爬虫就不要太追求速度了,太快了很容易封IP的
    imn1
        8
    imn1  
       2014-12-17 13:48:44 +08:00
    lxml + xpath 比 bs 快,regex 更快
    导出 cookies 可以不在程序中登录,实际上也是要登录,登录界面换成浏览器而已

    我的爬虫一向不带登录,只是读取浏览器cookies,因为都是自用,不发布,没必要写那么复杂
    shoumu
        9
    shoumu  
       2014-12-17 13:59:06 +08:00
    pyquery快一点
    yaotian
        10
    yaotian  
       2014-12-17 14:48:39 +08:00
    @imn1 如何自动读浏览器cookies?
    hadoop
        11
    hadoop  
       2014-12-17 15:24:17 +08:00
    @egrcc 爬得太快了可能会被要求验证码的
    libo26
        12
    libo26  
       2014-12-17 15:32:28 +08:00
    “如何自动读浏览器cookies?”
    @yaotian google一下,很多。。
    比如:
    http://n8henrie.com/2013/11/use-chromes-cookies-for-easier-downloading-with-python-requests/
    CosWind
        13
    CosWind  
       2014-12-17 17:36:34 +08:00   ❤️ 1
    太快了,可以用代理,http://pachong.org/
    egrcc
        14
    egrcc  
    OP
       2014-12-17 18:05:12 +08:00 via Android
    @CosWind 这个好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3089 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:48 · PVG 21:48 · LAX 05:48 · JFK 08:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.