Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create jianshu.py #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Create jianshu.py #1

wants to merge 1 commit into from

Conversation

LuoZijun
Copy link

性能更快哦。

@malone6
Copy link
Owner

malone6 commented Jun 23, 2017

你的代码写太棒了,佩服佩服!!!我对你的代码还要好好研究下
win对signal支持不好,使用不了。我在linux上试了下,那里么多线程并发,速度很快。我的水平比较渣,多线程都是用框架解决。谢谢你提供的写法,我再学习下相关知识。后期对jianshu爬虫做下优化。

@LuoZijun
Copy link
Author

@malone6 这个写法没有限定任务数,我自己电脑内存比较大,现在已经加上去啦。另外也写了个知乎的:

https://gist.github.com/LuoZijun/7c0a163d4fa8017f30b1780d0dd1fd25

@LuoZijun
Copy link
Author

@malone6 另外,看你写了很多爬虫,你既然已经爬好数据了,不知道能否分析下数据呢? 😃

@malone6
Copy link
Owner

malone6 commented Jun 23, 2017

@LuoZijun 知乎的我之前也是用scrapy写,结果考虑不周,最后渣笔记本内存爆满。
业余写了几个爬虫,感觉数据不好就放弃分析了(分析了一个瓜子二手车的)。而且自己在分析方面的知识也比较欠缺,所以现在也就在不断学习采集和分析及展示。之前的几个小爬虫也尽量抽出时间进行重新整理代码并分析。

@LuoZijun
Copy link
Author

@malone6 知乎有速度限制,所以只能慢慢爬 ==

简书只有每天的总流量限制(大概 1 GB),爬取速度要快些。

你笔记本爬可能不太合适啊,得一直开着呢。

@malone6
Copy link
Owner

malone6 commented Jun 23, 2017

简书是按流量限制?好神奇,哈哈。大神研究的真清楚。请问方便提供社交账号(知乎或简书类的)吗,方便交流和关注你的知识分享

@LuoZijun
Copy link
Author

@malone6 是啊,我爬简书半个小时左右,就爬了770MB 左右的 JSON 数据。然后整个 IP 就被屏蔽了。不过没关系第二天接着爬。

知乎的爬虫限制还是比较严的。

Github 就是我的 社交账号(微博没用过,知乎&简书都只是偶尔看看,没写过什么东西 ==).

@malone6
Copy link
Owner

malone6 commented Jun 23, 2017

@LuoZijun 知乎估计被人爬的太多了,所以就限制比较严。
目前看,简书可以高速抓取。限制1G还好,数据也不少。可以慢慢爬,或者有条件搞个分布式然后ip代理之类的。

没事。github已关注你,多向你学习

@LuoZijun
Copy link
Author

@malone6 一起学习 :)

@LuoZijun
Copy link
Author

@malone6 我今天看了下,大概爬了 1.082952 GB 数据,大概 265318 个用户的信息。
如果你需要的话,我传给你一个压缩包。

现在爬取的人大部分只有几个粉丝,没什么意义。

@malone6
Copy link
Owner

malone6 commented Jun 26, 2017

@LuoZijun 好呀。你把可以把数据传到网盘之类的,提供给我一个下载方式,我的邮箱[email protected]。目前觉得,从推荐作者作为入口不是太好的策略,但还没想到更好的方式。我看看你的这份数据和我那份差别大不大

@LuoZijun
Copy link
Author

LuoZijun commented Jun 27, 2017

@malone6

jianshu.tar.bz2

另外,今天加上去知乎的自动登录了,你的那个 登录方式限制太严了,几乎没法使用。

更新在这里:

https://gist.github.com/LuoZijun/7c0a163d4fa8017f30b1780d0dd1fd25/revisions

@malone6
Copy link
Owner

malone6 commented Jun 28, 2017

image
我把数据导入mongodb中。大概查了下数据,问题有点大。26w数据有17w是空的(只有一个slug),不哪里除了问题。粉丝比较多的人只能抓到几百个关系,关系感觉暂时没必要,保存关系耗费太大了。

@LuoZijun
Copy link
Author

LuoZijun commented Jun 28, 2017

@malone6

这个 只有 slug 一个字段有数据,这个是早期爬的时候,没有在写入的时候判断数据格式,当时就开了一下,以为没啥数据,就没在意。没想到跑得太快了,还是有这么多数据==
稍晚一点,我写个脚本把这类数据重新同步(在现在的爬取代码里面不存这个问题了)。

粉丝比较多的人只能抓到几百个,这个应该也是早期,考虑加个机制只更新 关注 & 被关注 数据。
因为现在逻辑是能爬多少是多少。

关系保存问题,这个还是需要的,需要根据这个关系列表检查下去。避免重新爬的时候从头开始。

@LuoZijun
Copy link
Author

@malone6

脚本已更新。现在在修复数据。

更新代码: https://gist.github.com/LuoZijun/7c0a163d4fa8017f30b1780d0dd1fd25/revisions

@LuoZijun
Copy link
Author

@malone6 今早看的数据,的确恢复了很多 :))

@malone6
Copy link
Owner

malone6 commented Jun 29, 2017 via email

@LuoZijun
Copy link
Author

@malone6 到时候好了,再发给你。

@LuoZijun
Copy link
Author

LuoZijun commented Jul 5, 2017

@malone6 新版本: https://drive.google.com/open?id=0By6cKQoy12SxZC1HTnJpd1l3bWs

大概 493449 份用户资料 ( ~= 82MB )。

@malone6
Copy link
Owner

malone6 commented Jul 6, 2017

image
厉害了!这份样本数据好啊!你抓了多久?我解压如数据库用了近一天……搞完比你的少了1w多数据,难道是解压丢了?

@LuoZijun
Copy link
Author

LuoZijun commented Jul 7, 2017

@malone6 应该是一边 压缩的时候 又爬了那么多。那个数据量是压缩完的。

现在其实有50多万了。但是后续的基本都没写过字。

@LuoZijun
Copy link
Author

LuoZijun commented Jul 7, 2017

@malone6 这个没有抓多久,因为简书没有反爬虫,所以还是比较快的。

你解压慢,应该是你要换笔记本啦。

最后,统计数据有时间能不能多出几个维度的分析呢?比如 字数 之类的。

粉丝 数 大于 某个值,但是又不是 签约作者 的数量(因为签约作者数量感觉比较少)。

你有时间的话,可以出个详细 :))

@malone6
Copy link
Owner

malone6 commented Jul 7, 2017 via email

@LuoZijun
Copy link
Author

LuoZijun commented Jul 7, 2017

@malone6 不客气 :)

@LuoZijun
Copy link
Author

LuoZijun commented Jul 13, 2017

@malone6 一个更高效和节约资源(内存)的爬虫模型: https://gist.github.com/LuoZijun/a41fc0c94099cc61b410112088696621

基于 Python3.5 以后才有的 EventLoop 模型。

有时间,我把这个 https://gist.github.com/LuoZijun/7c0a163d4fa8017f30b1780d0dd1fd25 重写下,
应该在一些内存更少的环境会更适用。

Repository owner deleted a comment from fede-s Dec 30, 2023
@github-staff github-staff deleted a comment Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants