热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用Python高效抓取微博文本与动态网页图像数据

本文介绍了使用Python编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。

  python爬取微博内容,python爬取动态网页图片

  这篇文章主要为大家介绍了如何利用计算机编程语言中的爬虫实现微博动态图片的爬取,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  由于微博的网页端有反爬虫,需要登录,所以我们换个思路,曲线救国。

  我们找到微博在浏览器上面用于手机端的调试的APL,如何找到呢?

  我这边直接附上微博的手机端的地址:https://m.weibo.cn/

  1.模拟搜索用户

  搜索一个用户获取到的api:

  https://m.weibo.cn/api/container/getIndex?cOntainerid=100103type=1q=半半子page_type=searchall

  1.1 对美国石油学会(美国石油协会)内参数进行处理

  cOntainerid=100103type=1q=半半子——容器id=100103类型=1 & ampq=半半子_

  这个参数需要提前转码,否则无法获取数据

  1.2 对用户名进行判断,通过后提取用户界面设计(用户界面设计的缩写)

  2.获取more参数

  得到

  API : https://m.weibo.cn/profile/info?uid=2830125342

  2.1 提取并处理更多参数

  3.循环提取图片id

  得到

  API : https://m.weibo.cn/api/container/getIndex?container id=2304132830125342 _-_ WEIBO _ SECOND _ PROFILE _ WEIBO page _ type=03 page=1

  3.1 提取图片id——pic_id

  3.2 获取发送图片用户

  3.3 根据动态创建时间生成用户唯一识别码

  4.下载图片

  我们从浏览器抓包中就会获取到后台服务器发给浏览器的图片链接

  https://wx2.sinaimg.cn/large/pic_id.jpg

  浏览器打开这个链接就可以直接下载图片

  爬取完整代码:

  导入操作系统

  导入系统

  导入时间

  从urllib.parse导入引号

  导入请求

  标题={

  用户代理“:”Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/95。0 .4638 .69 Safari/537.36

  }

  定义时间到字符串:

  ti=time.strptime(c_at, %a %b %d %H:%M:%S 0800 %Y )

  time _ str=时间。strftime( % Y % M % d % H % M % S ,ti)

  返回时间_字符串

  # 1.搜索用户,获取用户界面设计(用户界面设计的缩写)

  # 2.通过用户界面设计(用户界面设计的缩写)获取空间动态关键参数

  # 3.获取动态内容

  # 4.提取图片参数

  # 5.下载图片

  # 1.搜索用户,获取用户界面设计(用户界面设计的缩写)

  #=========用户名=========

  # 输入不同的用户名可切换下载的用户图片

  # 用户名需要完全匹配

  name=半半子_

  #=========================

  con_id=f100103type=1q={name}

  # 这个条件需要转码

  con_id=quote(con_id, utf-8 )

  user _ URL=f https://m。微博。 cn/API/container/getIndex?容器id={ con _ id } page _ type=search all

  user _ JSON=请求。get(URL=user _ URL,headers=headers).json()

  user _ cards=user _ JSON[ data ][ cards ]

  对于范围内的卡号(len(用户卡)):

  如果用户卡[卡号]:中有"移动日志"

  if user _ cards[card _ num][ mblog ][ user ][ screen _ name ]==name :

  打印(f 正在获取{姓名}的空间)

  # 2.通过用户界面设计(用户界面设计的缩写)获取空间动态关键参数

  user _ id=user _ cards[card _ num][ mblog ][ user ][ id ]

  info _ URL=f https://m。微博。cn/profile/info?uid={user_id}

  info _ JSON=请求。get(URL=info _ URL,headers=headers).json()

  more _ card=info _ JSON[ data ][ more ].split(/)[-1]

  破裂

  文件名=微博

  如果不是os.path.exists(文件名):

  os.mkdir(文件名)

  如果len(更多_卡)==0:

  sys.exit()

  page_type=03

  page=0

  而True:

  # 3.获取动态内容

  页面=1

  URL=f https://m。微博。cn/API/container/getIndex?容器id={ more _ card } page _ type={ page _ type } page={ page }

  param=requests.get(url=url,headers=headers).json()

  cards=param[data][cards]

  打印(f 第{第页}页)

  适用于范围内的我(信用卡):

  卡片=卡片[我]

  如果卡[card_type]!=9:

  继续

  mb_log=card[mblog]

  # 4.提取图片参数

  # 获取本人的图片

  pic_ids=mb_log[pic_ids]

  用户名=mb_log[用户][屏幕名]

  created _ at=MB _ log[ created _ at ]

  如果len(pic_ids)==0:

  # 获取转发的图片

  如果"转发状态"不在mb_log:中

  继续

  如果"图片标识"不在MB _ log[ retweeted _ status ]:中

  继续

  pic _ ids=MB _ log[ retweeted _ status ][ pic _ ids ]

  user _ name=MB _ log[ retweed _ status ][ user ][ screen _ name ]

  created _ at=MB _ log[ retweeted _ status ][ created _ at ]

  时间名称=时间到字符串(创建时间)

  pic_num=1

  print(f ========={用户名}=======)

  # 5.下载图片

  对于pic_ids:中的图片_id

  pic _ URL=f https://wx2。新浪img。 cn/large/{ pic _ id } . jpg

  pic_data=requests.get(pic_url,headers)

  # 文件名用户名_日期(年月日时分秒)_编号。使用联合图象专家组文件交换格式存储的编码图像文件扩展名

  # 例:半半子__20220212120146_1.jpg

  打开时(f"{文件名}/{用户名} _ {时间名} _ {照片号}。jpg ,mode=wb )作为f:

  f.write(pic_data.content)

  打印(f 正在下载:{图片id} .jpg’)

  pic_num=1

  时间。睡眠(2)

  到此这篇关于计算机编程语言实现微博动态图片爬取详解的文章就介绍到这了,更多相关计算机编程语言微博图片爬取内容请搜索盛行信息技术软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行信息技术软件开发工作室!



推荐阅读
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • Java项目分层架构设计与实践
    本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
  • 你根本不会用百度
    本文转载自第2大脑,详情可以扫描下方二维码关注该公众号摘要:教你正确使用百度。想必你的朋友圈这两天应该被《搜索引擎百度已死》这篇文章刷屏了吧࿰ ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • Nature Microbiology: 人类肠道古菌基因组目录
    本研究揭示了人类肠道微生物群落中古细菌的多样性,分析了来自24个国家、农村和城市人群的1,167个非冗余古细菌基因组。研究鉴定了多个新分类群,并探讨了古菌对宿主的适应性及其与社会人口特征的关系。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 精致小屏灰色风格苹果CMS v10模板,支持DIY主题管理系统
    探索一款专为影视站设计的苹果CMS v10模板,具备强大的主题管理系统和500多个设置项,无需二次开发即可轻松配置。下载地址:https://www.mytheme.cn/maccms/244.html,演示地址:http://demo.mytheme.cn/index.php?id=244。 ... [详细]
  • 探讨如何修复Visual Studio Code中JavaScript的智能感知和自动完成功能在特定场景下无法正常工作的问题,包括配置检查、语言模式选择以及类型注释的使用。 ... [详细]
  • 在PHP后端开发中遇到一个难题:通过第三方类文件发送短信功能返回的JSON字符串无法解析。本文将探讨可能的原因并提供解决方案。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
author-avatar
陈可不能哭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有