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

2015-04-16 15:42:47 +08:00
 Registering
近两周下班翻看了一下基本语法,队列,字典,条件,网络,文件等等语法有了个大概了解了,,,

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

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

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

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


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

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


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


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


------------------------
希望老司机告诉我这个思路有没有错
以及,如果你来写,你会怎么实现这个爬虫,
4139 次点击
所在节点    Python
18 条回复
messense
2015-04-16 15:48:11 +08:00
messense
2015-04-16 15:49:44 +08:00
Daniel65536
2015-04-16 15:50:45 +08:00
思路偏了。

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

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

所以直接检查根话题精华就能得到票数最高的答案了。
ioven
2015-04-16 15:50:57 +08:00
把知乎用户名入库,直到抓取抓取不到新的用户名为止。
binux
2015-04-16 15:51:13 +08:00
Daniel65536
2015-04-16 15:59:04 +08:00
经验:写爬虫前一定要多花时间分析目标网站,分析用多一分钟顶你爬多一天。

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

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

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

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

python不是有pyc么?
MeiganFang
2015-04-17 21:50:59 +08:00
@jarlyyn lz应该还是入门级的
twc731
2015-12-04 15:44:24 +08:00
@binux 您好, http://demo.pyspider.org/网站的在线 JSON 怎么打不开了,打开来是空白的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/184152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX