热门标签 | 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)

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



推荐阅读
  • 本课程详细介绍了如何使用Python Flask框架从零开始构建鱼书应用,涵盖高级编程技巧和实战项目。通过视频教学,学员将学习到Flask的高效用法,包括数据库事务处理和书籍交易模型的实现。特别感谢AI资源网提供的课程下载支持。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 如何选择并安装合适的Python环境和工具以解决常见的下载问题
    选择并安装合适的Python环境和工具对于解决常见的下载问题至关重要。用户可以直接访问Python官方网站进行下载,无需额外安装其他软件。Python作为一种跨平台的编程语言,支持多种操作系统,并具备面向对象和动态类型的特性,能够有效提升开发效率和代码可维护性。此外,推荐使用虚拟环境管理工具如venv或conda,以便更好地隔离项目依赖,确保开发环境的稳定性和安全性。 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • HTTP协议作为互联网通信的基础,其重要性不言而喻。相比JDK自带的URLConnection,HttpClient不仅提升了易用性和灵活性,还在性能、稳定性和安全性方面进行了显著优化。本文将深入解析HttpClient的使用方法与技巧,帮助开发者更好地掌握这一强大的工具。 ... [详细]
  • 本文介绍了如何通过掌握 IScroll 技巧来实现流畅的上拉加载和下拉刷新功能。首先,需要按正确的顺序引入相关文件:1. Zepto;2. iScroll.js;3. scroll-probe.js。此外,还提供了完整的代码示例,可在 GitHub 仓库中查看。通过这些步骤,开发者可以轻松实现高效、流畅的滚动效果,提升用户体验。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • 在当前各种算法实现和开源软件包层出不穷的背景下,算法对程序员的重要性是否有所减弱?回顾历史,早期程序员必须熟练掌握算法并频繁自行编写。然而,随着技术的发展,算法逐渐成为一种“商品”,现代开发者更多依赖现成的库和商业算法解决方案。有观点认为,机器学习领域中,许多算法已经被高度封装,不再需要深入理解其背后的数学原理。然而,这种趋势也引发了关于技术深度与广度平衡的讨论,强调了基础理论知识在应对复杂问题时的不可替代性。 ... [详细]
  • 宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析
    宏基因组学经典文献重现(一):利用ggplot2进行散点图可视化分析 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
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社区 版权所有