Python爬取微博文字与图片(不使用Cookie)

网页版微博是纯正的HTML,而且调用的微博自家的API来获取图片。

网址:https://m.weibo.cn/api/container/即为微博api里面包含了个人的信息与微博文字与图片存储地址。

进入api页面我们可以很清晰的看到各种信息都用json存储起来了。我们再利用python中的json库提取出来即可。这比其它利用cookie模拟登陆要方便很多,我们只要输入被爬虫用户的微博ID然后运行便能自动爬取。

ID从这个复制链接里面可以看出来。

代码采用Python3

最终的效果图(爬取的微博txt文件):

爬取的微博图片:

以后下壁纸就很简单啦!!!

GUI程序:http://www.omegaxyz.com/2018/02/14/python_weibo_gui/

 

29 评论

  1. 大佬 为什么运行源代码只能爬到一百八十多页?其他人有这样的问题吗?

    • 年代久远,这个代码现在还能跑嘛?
      欢迎您push最新的代码到:https://github.com/xyjigsaw/Weibo-Crawler-GUI

      • 能跑,但是很奇怪的跑到将近200页的时候输出的cards就会变成空值,但是将网站直接贴到浏览器上面又显示明明是有json值的

        • 可能是微博的反爬机制,欢迎你调试并push最新的代码到https://github.com/xyjigsaw/Weibo-Crawler-GUI

  2. 你好老師, 我是個初學者, 請問如果我想把下載的相片根據相片的發布日期命名排序, 我應該如何修改代碼?
    另外如果想同時下載視頻, 是不是難以實踐, 感謝

    • 你好,你可以把他们的meta信息放到同一个tuple里面,然后排序。

  3. 找到了用户id,但是脚本函数get_userInfo返回{“ok”:0,”msg”:”\u8fd9\u91cc\u8fd8\u6ca1\u6709\u5185\u5bb9″,”data”:{“cards”:[]}}。但是使用浏览器打开却是正常的{“ok”:1…………(省略)。修改了User-Agent,也没好。请指导!

  4. 你好,这个container和直接查看网页源码获取到的图片链接一样吗?有时间请楼主解答

  5. 博主的方法是把客户端伪装成了浏览器,设置proxy和user agent,但是这样浏览器端必须登陆过微博才可以用,我理解的对吗?
    如果我想在一个app里面模拟,也要做这些操作了?
    麻烦作者回复一下,谢谢

    • 不是这样的,这个我是直接调用微博的api,我设置proxy和useragent是为了反反爬虫,不需要登录微博,如果你想在app里面模拟,直接调用代码中的url的api即可。

回复 xyjisaw取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注