V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
Registering
V2EX  ›  Python

准备练手写一个爬虫,问问老司机

  •  
  •   Registering · Apr 16, 2015 · 4678 views
    This topic created in 4037 days ago, the information mentioned may be changed or developed.
    近两周下班翻看了一下基本语法,队列,字典,条件,网络,文件等等语法有了个大概了解了,,,

    想写个爬虫试试:爬知乎票数最高的十个回答

    以我现在关于爬虫知道的有限知识,准备这样做(有错则望轻喷)

    找李开复爷爷的大V号开始,

    检索其回答过的问题的票数,记录
    然后遍历关注他的用户
    继续检索其中一个开复爷爷的粉丝回答的问题的票数,记录
    ,,,
    ,,,


    上面这个过程应该涉及到广度深度搜索,,用递归的方式估计分分钟就内存溢出了,所以需要用一个队列维护起来。如果数据太多,也许得保存到数据库。

    解析HTML准备直接用HTMLParser或者Beautiful Soup。


    那么问题来了,,,我这个爬虫爬到什么时候告诉自己结束,难不成让它爬几个月爬遍整个知乎?,


    这个过程不涉及登陆,所以基本主要问题是算法的设计,以及HTML的解析。


    ------------------------
    希望老司机告诉我这个思路有没有错
    以及,如果你来写,你会怎么实现这个爬虫,
    18 replies    2015-12-04 15:44:24 +08:00
    messense
        1
    messense  
       Apr 16, 2015
    Daniel65536
        3
    Daniel65536  
       Apr 16, 2015 via iPad
    思路偏了。

    直接读取这个网页就行了:
    http://www.zhihu.com/topic/19776749/top-answers

    1.知乎-话题-精华 会按照投票数量排序某话题/子话题下的最高票答案
    2.知乎-根话题 是所有话题的母话题

    所以直接检查根话题精华就能得到票数最高的答案了。
    ioven
        4
    ioven  
       Apr 16, 2015
    把知乎用户名入库,直到抓取抓取不到新的用户名为止。
    binux
        5
    binux  
       Apr 16, 2015
    Daniel65536
        6
    Daniel65536  
       Apr 16, 2015 via iPad   ❤️ 1
    经验:写爬虫前一定要多花时间分析目标网站,分析用多一分钟顶你爬多一天。

    你这个具体问题上爬虫爬一个月还不如我直接读取网页花一秒。

    经验2:多花时间分析流量有效性比。

    为什么要去读取html?如果有RESTful api读json的效率是不是高更多?
    充满层级/样式/脚本的html中有价值的数据的比例占总数据量的多少?有没有20%?
    json有效数据比例可以高达70%,同样网速爬取速度就能快3-5倍,还不用考虑html的解析问题。

    #一点爬数据的人生经验
    Registering
        7
    Registering  
    OP
       Apr 16, 2015
    @Daniel65536 好吧,,,感觉这个爬虫已经没有或者的意义了,,,,我这就把它生吞了,,,
    whatisnew
        8
    whatisnew  
       Apr 16, 2015
    @messense 西瓜皮分析html用的是什么方法?dom?正则?
    messense
        9
    messense  
       Apr 16, 2015
    frankzeng
        10
    frankzeng  
       Apr 16, 2015
    木有任何意义,因为知乎已经提供了。
    可以换个项目,爬一下豆瓣的评分最高的前1000个电影,包括他们的详细信息,放到自己数据库,再做个页面优雅展示出来。
    Registering
        11
    Registering  
    OP
       Apr 16, 2015
    @frankzeng
    恩恩,好久没上知乎了,刚才才知道现在知乎的根话题下有列出票数排名,,,
    kingname
        12
    kingname  
       Apr 16, 2015   ❤️ 2
    xpath大法好,Beautiful Soup是垃圾。
    em70
        13
    em70  
       Apr 16, 2015 via Android
    你自己去做出来看看啊,还没做先问行不行,你这是学习吗
    whatisnew
        14
    whatisnew  
       Apr 16, 2015
    有没有什么办法让 python 每一次都不要动态编译。。。像 c/cpp 或者 java 那样编译好再运行。
    动态编译真是硬伤
    jarlyyn
        16
    jarlyyn  
       Apr 16, 2015
    @whatisnew

    python不是有pyc么?
    MeiganFang
        17
    MeiganFang  
       Apr 17, 2015
    @jarlyyn lz应该还是入门级的
    twc731
        18
    twc731  
       Dec 4, 2015
    @binux 您好, http://demo.pyspider.org/网站的在线 JSON 怎么打不开了,打开来是空白的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   743 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 20:42 · PVG 04:42 · LAX 13:42 · JFK 16:42
    ♥ Do have faith in what you're doing.