学 Python 不久,尝试写了个 instagram 爬虫,想问问大家的建议?

2019-06-08 18:11:26 +08:00
 waibunleung

学 python 不久,尝试参照别的库写了个 instagram 爬虫,想问问大家的建议?

link: https://github.com/luengwaiban/instagram-python-scraper

按照自己感觉写的,望各位 python 大虾能指点一下,教练,我想变强~

5114 次点击
所在节点    Python
38 条回复
waibunleung
2019-06-10 09:46:46 +08:00
@Takamine 赞啊!
因为之前自己不是学 python 的,所以受别的语言的一些影响就把其他语言的一些东西带到过来了。所以写完之后自己也觉得不够 pythonic,才发了这个帖子希望有经验的大大来指点一下。
谢谢你的建议,线程其实之前有考虑,但是没想好线程对应怎样的使用场景,因为 instagram 的接口的分页数据获取是采用游标的形式的,没办法像常规爬虫那样有规律地分页去安排不同线程去获取不同分页段的数据。不过如果是按照用户列表去爬取用户的 post 的话,以及下载用户媒体的时候,线程就可能可以起到作用了。
另外我看了廖雪峰的博客,他建议是 进程 + async/await 的方式比使用线程高效。
至于 @property 之前我试着用了一下,因为我项目里面大部分是 get,极少 set,如果我使用了 @property,我需要写 getter 和 setter,心里想着 set 可以直接通过 obj.key=value 的方式设置,那就没有太大的必要再写多一次 setter,在我看来 @property 在对某些属性有限制时的场景下比较有实际意义,普通场景下感觉用不用都可以,也不知道这样的想法是不是我还不够深入的原因,所以最后没有采用 @property
日志这一块我不知道作为一个库加上日志是否合适,但是我会认真考虑~
说了很多,就当是相互交流一下想法,真心谢谢你的建议,这正是我想看到的,十分感谢~QwQ
deleteDB
2019-06-10 10:01:31 +08:00
很用心 点个赞
fank99
2019-06-10 10:01:37 +08:00
写的很好 学习了
baojiweicn2
2019-06-10 10:02:17 +08:00
写的很不错。get_value / set_value 不够 pythonic,其他各个方面都蛮不错的。 楼上提到 async/await 确实是不错的。 @property 的表达方式。
waibunleung
2019-06-10 10:09:44 +08:00
@baojiweicn2 关于 get_value / set_value 不够 pythonic 这点,我在楼上给出了我的想法,不知道这样的想法是否合理?还是说使用 @property 会更好一点?

我的想法:
至于 @property 之前我试着用了一下,因为我项目里面大部分是 get,极少 set,如果我使用了 @property,我需要写 getter 和 setter,心里想着 set 可以直接通过 obj.key=value 的方式设置,那就没有太大的必要再写多一次 setter,在我看来 @property 在对某些属性有限制时的场景下比较有实际意义,普通场景下感觉用不用都可以,也不知道这样的想法是不是我还不够深入的原因,所以最后没有采用 @property
waibunleung
2019-06-10 10:10:20 +08:00
@fank99 还是有很多可以改进的地方,谢谢你的赞同~
waibunleung
2019-06-10 10:10:50 +08:00
@deleteDB 感谢鼓励!
waibunleung
2019-06-10 13:24:16 +08:00
@BlackL 是 _is_auto_construct 才对,还我找了好久的说。如果这个属性为 True,则在初始化这个对象时,如果对象里面有属性方法,则会调用逐个调用对象的属性方法
fenghuang
2019-06-10 14:52:32 +08:00
@waibunleung 好的谢谢,不懂再请教
waibunleung
2019-06-13 11:29:03 +08:00
居然碰到一个跟我差不多但是自己写脚本刷 star 的上来了...真是醉了
YuxiangLuo
2019-08-30 14:45:39 +08:00
无法获取评论。media.get_comments()获取的一直是空数组,instagram.get_media_comments_by_code()报错 AttributeError: module 'instagram_scraper.model' has no attribute 'Comment',尝试登录会报错 "Select where to send security code......TypeError: can only concatenate str (not "int") to str"
susix
2019-09-20 22:42:43 +08:00
@waibunleung
刚刚好像看到了。。。是这个? github.com/realsirjoe/instagram-scraper,
楼主是 6.2 开的,这人是 6.10 开的,star 是楼主的十倍。。。
lpdy4
2019-10-28 15:59:13 +08:00
看了一下午这个库,回 V2 搜了下竟然找到原作者,很棒啊。
waibunleung
2019-10-29 10:16:57 +08:00
@lpdy4 哇塞,请问你是怎么发现这个库的
lpdy4
2019-10-30 09:38:38 +08:00
@waibunleung #34 google Instagram 爬虫第三个就是你的库~~( ps.有一些特别初级的问题想请教下,不知道 tg or wechat 是否方便
smttop
2019-12-06 18:49:27 +08:00
@waibunleung 我也是新手,研究了很久不知道怎么运行下去,在本地运行一直有报错,请问能否加你 QQ 请教几个问题,谢谢!
waibunleung
2019-12-09 10:29:10 +08:00
@lpdy4 你好,抱歉这么晚才看到,可以的,请联系我 wechat:shinelamla
waibunleung
2019-12-09 10:29:27 +08:00
@smttop 加微信吧 wechat:shinelamla

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

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

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

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

© 2021 V2EX