Python爬虫(2)——爬取微博内容

本文通过一种简单的方式来抓取华为终端官方微博的内容信息。首先抓取登录微博的cookie,然后使用cookie来登录微博。
具体的代码如下所示:

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 16 14:16:32 2017
@author: zch
"""

import requests
from bs4 import BeautifulSoup
import time
import pandas as pd

#放入cookie信息
cook = {"Cookie":"_T_WM=..."} 

#爬取华为终端官方微博的内容
url = "https://weibo.cn/huaweidevice"

html = requests.get(url,cookies=cook).content

#使用Beautiful来解析网页内容。
soup =BeautifulSoup(html,"html.parser")

r = soup.findAll('span',attrs={"class" : "ctt"})
for e in r:
    print(e.text)

运行结果如下所示:
这里写图片描述

当然,上面的代码一次只能实现爬取少量的内容信息,还很简陋。后面要想办法解决多页连续爬取自动分类存储的问题。

### 使用Python实现微博内容的网络爬取 #### 准备工作 在开始构建用于抓取微博平台内容爬虫之前,准备阶段至关重要。这不仅涉及环境设置还包括了解目标网站的技术特性,比如反爬虫机制的存在、页面内容动态加载的方式等[^1]。 #### 工具选择 对于微博这样的现代Web应用来说,其网页结构复杂且大量采用JavaScript渲染页面,因此传统的HTML解析方法可能无法直接获取所需的数据。此时可以选择`requests`库配合`BeautifulSoup`来进行静态页面元素提取;当面对AJAX请求或需模拟浏览器行为时,则可借助`Selenium`自动化测试工具完成操作;而针对更复杂的项目需求,还可以考虑使用功能强大的`Scrapy`框架来管理整个爬取流程。 #### API调用方式 另一种高效的方法是通过官方提供的API接口访问资源。以微博为例,在正式开发前需要先前往微博开放平台注册账号并创建相应应用程序获得必要的认证凭证(如App Key)。之后便可以根据文档说明发送HTTP GET/POST请求至指定端点从而合法地取得公开发布的帖子列表及其详情信息[^4]。 #### 实际编码示范 下面给出一段简化版代码片段展示如何利用第三方库发起GET请求读取特定用户的微博时间线: ```python import requests from bs4 import BeautifulSoup def fetch_weibo_timeline(user_id, cookie_string): url = f"https://m.weibo.cn/api/container/getIndex?type=uid&value={user_id}" headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", 'Cookie': cookie_string, } response = requests.get(url=url, headers=headers) if response.status_code == 200: data = response.json() cards = data['data']['cards'] for card in cards: mblog = card.get('mblog') if not mblog is None: created_at = mblog['created_at'] # 发布日期 text = mblog['text'] # 正文 soup = BeautifulSoup(text,'html.parser') print(f"{created_at}: {soup.text}") if __name__ == "__main__": user_id = "" # 微博用户ID cookie_string="" # 登录后的cookie字符串 fetch_weibo_timeline(user_id=user_id, cookie_string=cookie_string) ``` 这段脚本展示了基本的工作原理——向移动端接口发出查询命令,并对返回JSON对象内的每条记录逐一处理打印发布时间与纯文本形式的内容摘要。需要注意的是实际部署过程中还需加入异常捕获逻辑确保稳定性以及合理安排休眠间隔以免触发频率限制措施[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值