首页 > 其他分享 >HTML应用指南:利用GET请求获取微博用户特定标签的文章内容

HTML应用指南:利用GET请求获取微博用户特定标签的文章内容

时间:2025-01-15 21:28:55浏览次数:3  
标签:GET text created page 微博 HTML import response

本篇文章,我们将探究GET请求的实际应用,我们使用Python的requests库通过GET请求抓取微博网页版(https://weibo.com/)的用户发布内容,因为微博整体使用的也是GET请求形式。

随着城市化进程的加速,公共交通系统在人们的日常生活中扮演着越来越重要的角色。地铁作为大中型城市的主要交通工具之一,其运营效率和服务质量直接影响市民的出行体验和城市的整体运行效能。同时上海作为经济中心,拥有较为发达的城市轨道交通网络。为了更好地理解上海地铁系统的运作情况及其对城市发展的影响,我们从微博平台上获取上海地铁官方发布的每日客流信息,并对其进行解析、清洗和可视化处理。

我们先来看看个人微博主页链接有哪些参数,uid(唯一id),page(页码),feaure(特征);

https://weibo.com/ajax/statuses/mymblog?uid=1742987497&page=1&feature=0

先讲一下通用方法,就是通过直接检索用户的个人微博主页,我们就可以知道该用户的唯一uid,通过修改uid和page就可以检索该用户的所有微博文章;

完整代码#运行环境 Python 3.11

import requests
import pandas as pd
import json  # 导入json模块

# 存储获取的微博数据
content_list = []

# 设置请求的页数
max_pages = 10  # 只打印前10页

# 爬取微博数据
for page in range(1, max_pages + 1):
    headers = {
        "Cookie": "YOUR_COOKIE_HERE",  # 替换为您的Cookie
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }
    params = {
        "uid": "1742987497",  # 微博的用户ID
        "page": page,
        "feature": 0,
    }

    url = "https://weibo.com/ajax/statuses/mymblog"

    # 发送请求
    response = requests.get(url=url, headers=headers, params=params)

    if response.status_code == 200:  # 检查请求是否成功
        print(f"第 {page} 页,状态码: {response.status_code}")
        data = json.loads(response.text)  # 解析JSON响应

        # 提取微博数据
        for item in data['data']['list']:
            created_at = item['created_at']
            text = item['text_raw']
            # 打印每条微博的创建时间和文本内容
            print(f"创建时间: {created_at}, 文本内容: {text}")
    else:
        print(f"请求失败,状态码: {response.status_code}")
        break

这里就打印了该用户的在限定条件范围内所有微博文章,有需要的话可以另存为csv之类的;

通常我们并不需要用户的所有文章内容,我们可以通过检索特定标签的方式打特定内容并保存为csv,这里以上海地铁官方微博,"上海地铁shmetro" 为例,我们需要获取它的客运量信息, 我们先看它发布客流量时候带的特定标签是什么,通过检索发现是"【地铁网络客流】",所以通过增加限定词的的方式来筛选输出内容;

完整代码#运行环境 Python 3.11

import requests
import pandas as pd
import json  # 导入json模块
import time  # 导入时间模块
import random  # 导入随机模块

# 存储获取的微博数据
content_list = []

# 设置请求的页数
max_pages = 10  # 只打印前10页

# 爬取微博数据
for page in range(1, max_pages + 1):
    headers = {
        "Cookie": "YOUR_COOKIE_HERE",  # 替换为您的Cookie
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }
    params = {
        "uid": "1742987497",  # 地铁微博的用户ID
        "page": page,
        "feature": 0,
    }

    url = "https://weibo.com/ajax/statuses/mymblog"

    # 发送请求
    response = requests.get(url=url, headers=headers, params=params)

    if response.status_code == 200:  # 检查请求是否成功
        print(f"第 {page} 页,状态码: {response.status_code}")
        data = json.loads(response.text)  # 解析JSON响应

        # 提取微博数据
        for item in data['data']['list']:
            created_at = item['created_at']  # 获取创建时间
            text = item['text_raw']  # 获取文本内容
            # 检查是否包含【地铁网络客流】标签
            if '【地铁网络客流】' in text:
                content_list.append({'created_at': created_at, 'text': text})  # 保存符合条件的数据
                # 打印每条微博的创建时间和文本内容
                print(f"创建时间: {created_at}, 文本内容: {text}")

        # 随机延时,延迟时间在1到3秒之间
        delay = random.uniform(1, 3)
        print(f"等待 {delay:.2f} 秒...")
        time.sleep(delay)  # 随机延时

    else:
        print(f"请求失败,状态码: {response.status_code}")
        break

# 将符合条件的数据保存为CSV文件
df = pd.DataFrame(content_list)
df.to_csv('yesterday_traffic.csv', index=False, encoding='utf-8-sig')  # 保存为CSV文件

特定标签下的文章内容会被筛选出来,并另存为csv,另外python脚本里增加了随机延时部分,避免频繁访问;

我们一起来回顾一下2024年客流变化比较明显的几个特征时段,为此,我们获取了上海2024年一整年的客运量数据,2月10日至17日是春节假期,由于大量人口返乡过年,春节期间的客流出行显著下降,9月16日受今年第13号台风“贝碧嘉”影响,大部分地面段地铁停运,对当日的公共交通运营造成了较大影响,10月1日至7日迎来国庆节,尽管是旅游高峰期,但国庆期间的客流相对平时有所减少,说明部分平时以地铁作为主要通勤工具的人口选择了外出旅行或返乡;

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

标签:GET,text,created,page,微博,HTML,import,response
From: https://blog.csdn.net/weixin_45812624/article/details/145156230

相关文章

  • @await Html.PartialAsync
    @awaitHtml.PartialAsync是ASP.NETCoreMVC中的一个Razor视图语法,用于异步加载一个视图片段(PartialView)。作用视图复用:可以将一些通用的UI组件或内容封装成视图片段,然后在不同的页面或视图中通过 @awaitHtml.PartialAsync 来引入,避免代码重复,提高开发效率和代码的......
  • 【Html.js——页面布局】个人博客(蓝桥杯真题-1766)【合集】
    目录......
  • 认识HTML
    目录HTML结构认识HTML标签HTML文件基本结构  标签层次结构 快速生成代码框架  HTML常见标签 注释标签 标题标签:h1-h6段落标签:p 换行标签:br  格式化标签 图片标签:img 超链接标签:a ​编辑链接的几种形式:  表格标签基本使用 ......
  • 前端开发之HTML入门
    首先我们来介绍一下HTML( 超文本标记语言)是构建网页和Web应用程序的标准标记语言。它由一系列元素和标签组成,这些元素和标签用于定义网页的结构和内容。HTML能够嵌入文本、图像、链接、视频和其他多媒体元素,使用户能够通过浏览器访问和交互。主要作用结构化内容:HTML提供了......
  • goal vs objective vs target
    goal680objective2421target1284 GOALvsOBJECTIVEleft4WORD1:GOAL过滤200 WORDW1W2 SCORED14231HehasscoredafurtherfivegoalsintheSpanishSupercupandtheChampionsLeague.他在西班牙超级杯和冠军联赛中又打进了五个进球。  scored......
  • 【WPF】使用RenderTargetBitmap截图的时候位置出现偏移的一些解决办法
    简介在WPF中,如果你需要把控件的渲染画面保存到图片,那么唯一的选择就是RenderTargetBitmap。不过,RenderTargetBitmap是个比较难伺候的主,有时候你以为能工作,但实际上不能;你以为能够正常截图,但实际上截出来的图片是歪的。所以,我总结一下自己项目中遇到的坑和解决办法吧!保存的图片......
  • 基于Python实现的微博POI信息爬取
    1.poiid获取可通过微博网页搜索对应关键词获取,见下图红框(本文皆以上海体育馆为例),当然还有其他方式获取,后续介绍。2.移动端网页接口(1)爬取接口ret=requests.get(f'https://m.weibo.cn/api/container/getIndex?containerid=2306570042{poiid}').json()通过get方式访问,poii......
  • 解决htmlcanvas遇到图片较多的复杂首页,保存截图特别慢的问题
    先说问题:在首页新增个保存部分dom截图的功能,但首页加载接口较多,图片跨域加载比较慢,而htmlcanvas保存截图前会将整个页面渲染一遍,这就导致有些图片没加载完成,dom渲染不然,canvas保存就会延迟四五秒之久 解决方法:增加这个参数ignoreElements:function(element){......
  • vue.js actions和getters
    在Vue.js中,使用vuex状态管理库来管理全局状态。其中,actions和getters是vuex中的两个重要概念。actions用于处理异步操作,例如发送HTTP请求或者其他需要等待结果的操作。它可以包含任意异步操作,并且可以通过commit方法来触发mutations的方法来改变state,也可以通过dispatch方法来......
  • 怎么使用HTML5来获取定位?定位不准怎么解决?
    在HTML5中,你可以使用GeolocationAPI来获取用户的地理位置。以下是一个简单的示例,展示了如何使用这个API:<!DOCTYPEhtml><html><body><p>点击按钮获取您的地理位置。</p><buttononclick="getLocation()">获取位置</button><pid="demo"></p>......