iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现微博动态图片爬取
  • 674
分享到

Python怎么实现微博动态图片爬取

2023-06-29 10:06:09 674人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python怎么实现微博动态图片爬取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现微博动态图片爬取”吧!我们找到微博在浏览器上面用于手机端的调试的APL,如

本篇内容主要讲解“python怎么实现微博动态图片爬取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python怎么实现微博动态图片爬取”吧!

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

Python怎么实现微博动态图片爬取

1.模拟搜索用户

Python怎么实现微博动态图片爬取

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

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

1 对api内参数进行处理

containerid=100103type=1&q=半半子 ——> containerid=100103type%3D1%26q%3D%E5%8D%8A%E5%8D%8A%E5%AD%90_

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

2 对用户名进行判断,通过后提取uid

Python怎么实现微博动态图片爬取

2.获取more参数

GET

api : Https://m.weibo.cn/profile/info?uid=2830125342

1 提取并处理more参数

Python怎么实现微博动态图片爬取

3.循环提取图片id

GET

api : https://m.weibo.cn/api/container/getIndex?containerid=2304132830125342_-_WEIBO_SECOND_PROFILE_WEIBO&page_type=03&page=1

1 提取图片id——>pic_id

2 获取发送图片用户

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

Python怎么实现微博动态图片爬取

4.下载图片

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

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

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

爬取完整代码:

import osimport sysimport timefrom urllib.parse import quote import requests headers = {    'user-agent': 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}  def time_to_str(c_at):    ti = time.strptime(c_at, '%a %b %d %H:%M:%S +0800 %Y')    time_str = time.strftime('%Y%m%d%H%M%S', ti)    return time_str  # 1. 搜索用户,获取uid# 2. 通过uid获取空间动态关键参数# 3. 获取动态内容# 4. 提取图片参数# 5. 下载图片 # 1. 搜索用户,获取uid# ========= 用户名 =========# 输入不同的用户名可切换下载的用户图片# 用户名需要完全匹配name = '半半子_'# ========================= con_id = f'100103type=1&q={name}'# 这个条件需要转码con_id = quote(con_id, 'utf-8')user_url = f'https://m.weibo.cn/api/container/getIndex?containerid={con_id}&page_type=searchall'user_JSON = requests.get(url=user_url, headers=headers).json()user_cards = user_json['data']['cards']for card_num in range(len(user_cards)):    if 'mblog' in user_cards[card_num]:        if user_cards[card_num]['mblog']['user']['screen_name'] == name:            print(f'正在获取{name}的空间')            # 2. 通过uid获取空间动态关键参数            user_id = user_cards[card_num]['mblog']['user']['id']            info_url = f'https://m.weibo.cn/profile/info?uid={user_id}'            info_json = requests.get(url=info_url, headers=headers).json()            more_card = info_json['data']['more'].split("/")[-1]            breakfile_name = 'weibo'if not os.path.exists(file_name):    os.mkdir(file_name) if len(more_card) == 0:    sys.exit()page_type = '03'page = 0while True:    # 3. 获取动态内容    page += 1    url = f'https://m.weibo.cn/api/container/getIndex?containerid={more_card}&page_type={page_type}&page={page}'    param = requests.get(url=url, headers=headers).json()    cards = param['data']['cards']    print(f'第 {page} 页')    for i in range(len(cards)):        card = cards[i]        if card['card_type'] != 9:            continue        mb_log = card['mblog']        # 4. 提取图片参数        # 获取本人的图片        pic_ids = mb_log['pic_ids']        user_name = mb_log['user']['screen_name']        created_at = mb_log['created_at']        if len(pic_ids) == 0:            # 获取转发的图片            if 'retweeted_status' not in mb_log:                continue            if 'pic_ids' not in mb_log['retweeted_status']:                continue            pic_ids = mb_log['retweeted_status']['pic_ids']            user_name = mb_log['retweeted_status']['user']['screen_name']            created_at = mb_log['retweeted_status']['created_at']        time_name = time_to_str(created_at)        pic_num = 1        print(f'======== {user_name} ========')        # 5. 下载图片        for pic_id in pic_ids:            pic_url = f'https://wx2.sinaimg.cn/large/{pic_id}.jpg'            pic_data = requests.get(pic_url, headers)            # 文件名 用户名_日期(年月日时分秒)_编号.jpg            # 例:半半子__20220212120146_1.jpg            with open(f'{file_name}/{user_name}_{time_name}_{pic_num}.jpg', mode='wb') as f:                f.write(pic_data.content)                print(f'    正在下载:{pic_id}.jpg')            pic_num += 1        time.sleep(2)

到此,相信大家对“Python怎么实现微博动态图片爬取”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python怎么实现微博动态图片爬取

本文链接: https://www.lsjlt.com/news/324176.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python怎么实现微博动态图片爬取
    本篇内容主要讲解“Python怎么实现微博动态图片爬取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现微博动态图片爬取”吧!我们找到微博在浏览器上面用于手机端的调试的APL,如...
    99+
    2023-06-29
  • Python实现微博动态图片爬取详解
    由于微博的网页端有反爬虫,需要登录,所以我们换个思路,曲线救国。 我们找到微博在浏览器上面用于手机端的调试的APL,如何找到呢? 我这边直接附上微博的手机端的地址:https://...
    99+
    2024-04-02
  • python爬取微博图片数据存到Mysq
    本人长期出售超大量微博数据、旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com。同时欢迎加入社交媒体数据交流群:99918768   由于硬件等各种原因需要把大概170多万2t...
    99+
    2023-01-31
    数据 图片 python
  • python爬虫怎么爬取微博热搜
    这篇文章主要介绍python爬虫怎么爬取微博热搜,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4.twiste...
    99+
    2023-06-14
  • 使用python怎么爬取微博评论
    今天就跟大家聊聊有关使用python怎么爬取微博评论,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端...
    99+
    2023-06-14
  • 爬取微博图片数据存到Mysql中遇到的
      由于硬件等各种原因需要把大概170多万2t左右的微博图片数据存到Mysql中.之前存微博数据一直用的非关系型数据库mongodb,由于对Mysql的各种不熟悉,踩了无数坑,来来回回改了3天才完成。   PS:(本人长期出售超大量...
    99+
    2023-01-31
    数据 图片 爬取微博
  • python实战之Scrapy框架爬虫爬取微博热搜
    前言:大概一年前写的,前段时间跑了下,发现还能用,就分享出来了供大家学习,代码的很多细节不太记得了,也尽力做了优化。 因为毕竟是微博,反爬技术手段还是很周全的,怎么绕过反爬的话要在这...
    99+
    2024-04-02
  • Node.js怎么实现爬取网站图片
    这篇文章主要介绍“Node.js怎么实现爬取网站图片”,在日常操作中,相信很多人在Node.js怎么实现爬取网站图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node.js怎么实现爬取网站图片”的疑惑有所...
    99+
    2023-06-29
  • Python爬虫 自动爬取图片并保存
    一、准备工作   用python来实现对图片网站的爬取并保存,以情绪图片为例,搜索可得到下图所示 f12打开源码 在此处可以看到这次我们要爬取的图片的基本信息是在img - scr中 二、代码实现 这次的爬取主要用了如下的第三方库...
    99+
    2023-10-09
    爬虫 python 数据挖掘
  • python爬虫怎么获取图片
    这篇文章主要讲解了“python爬虫怎么获取图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python爬虫怎么获取图片”吧!首先导入库给文件加入头信息,伪装成模拟浏览器访问实现翻页翻页多...
    99+
    2023-06-02
  • 使用Python怎么爬取微博热搜关键词
    今天就跟大家聊聊有关使用Python怎么爬取微博热搜关键词,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和...
    99+
    2023-06-14
  • 怎么用python代码实现爬取奥特曼图片
    这篇文章主要讲解了“怎么用python代码实现爬取奥特曼图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用python代码实现爬取奥特曼图片”吧!爬取网址:http://www.ult...
    99+
    2023-06-29
  • 使用python怎么爬取微博的热搜数据
    使用python怎么爬取微博的热搜数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。主要用到requests和bf4两个库将获得的信息保存在d://hotsea...
    99+
    2023-06-06
  • 用python实现爬取奥特曼图片实例
    爬取网址:http://www.ultramanclub.com/allultraman/ 使用工具:pycharm,requests 进入网页 打开开发者工具 点击 Netwo...
    99+
    2024-04-02
  • 六个步骤学会使用Python爬虫爬取数据(爬虫爬取微博实战)
    用python的爬虫爬取数据真的很简单,只要掌握这六步就好,也不复杂。以前还以为爬虫很难,结果一上手,从初学到把东西爬下来,一个小时都不到就解决了。 Python爬虫六部曲 第一步:安装request...
    99+
    2023-09-10
    python 爬虫 python入门 python爬虫 python爬虫爬取网页数据
  • python爬虫怎么批量爬取百度图片
    这篇文章将为大家详细讲解有关python爬虫怎么批量爬取百度图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬...
    99+
    2023-06-14
  • 怎么用Python爬取某图网的图片
    本篇内容介绍了“怎么用Python爬取某图网的图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!相信很多设计小伙伴有好的灵感,但是没有好的设...
    99+
    2023-06-15
  • python+selenium实现动态爬
    应用实例可以参考博客中的12306自动抢票应用 https://www.cnblogs.com/mumengyun/p/10001109.html 动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaSc...
    99+
    2023-01-30
    动态 python selenium
  • Python自动爬取图片并保存实例代码
    目录一、准备工作二、代码实现 三、总结一、准备工作 用python来实现对百度图片的爬取并保存,以情绪图片为例,百度搜索可得到下图所示 f12打开源码 在此处可以看到这...
    99+
    2024-04-02
  • python实现简单爬虫--爬图片
    首先有两个功能需求:第一:获取到要爬的页面html内容;第二:使用正则表达式进行匹配并进行保存到本地。#!/usr/bin/env python #encoding:utf-8 import urllib import re def get...
    99+
    2023-01-31
    爬虫 简单 图片
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作