微博内容爬取——陈一发儿微博实例

引言

利用Ajax分析微博并爬取其内容如微博内容,点赞数,转发数,评论数等。

分析

打开陈一发微博网站:https://m.weibo.cn/p/1005051054009064,并同时打开开发者工具。
我们可以在Network中分析可以得出,微博中所有的内容都是名为“getIndex?containerid=1076031054009064”的响应
这里写图片描述
经过这其中的JSON代码分析后可以找到内容相对应的位置。
这里写图片描述
我们可以尝试切换到第一个响应中,查看返回的结果,可以看到代码只要不到50行,所以这些数据都是浏览器拿到数据后再进一步渲染出来的。

我们在尝试滚动页面,加载完成后会发现得到了新的响应,这也对应着加载出来的新的微博内容。
通过前后几次Request URL代码的不同来看
这里写图片描述

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个简单的示例代码,演示了如何使用Qt实现两个线程之间的通信,一个线程用于发送数据,另一个线程用于接收数据。 ``` #include <QtWidgets> #include <QThread> // 数据发送线程 class SenderThread : public QThread { Q_OBJECT public: SenderThread(QObject *parent = nullptr) : QThread(parent) {} signals: void dataReady(const QString &data); protected: void run() override { // 发送数据 for (int i = 0; i < 10; i++) { QString data = QString("Data %1").arg(i); emit dataReady(data); QThread::msleep(500); } } }; // 数据接收线程 class ReceiverThread : public QThread { Q_OBJECT public: ReceiverThread(QObject *parent = nullptr) : QThread(parent) {} signals: void dataReceived(const QString &data); protected: void run() override { // 接收数据 for (int i = 0; i < 10; i++) { QString data = QString("Data %1").arg(i); emit dataReceived(data); QThread::msleep(500); } } }; // 主窗口 class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { // 创建发送线程和接收线程 senderThread = new SenderThread(this); receiverThread = new ReceiverThread(this); // 连接信号和槽 connect(senderThread, &SenderThread::dataReady, receiverThread, &ReceiverThread::dataReceived); // 启动线程 senderThread->start(); receiverThread->start(); } private: SenderThread *senderThread; ReceiverThread *receiverThread; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); } #include "main.moc" ``` 在这个示例中,我们创建了一个 `SenderThread` 类和一个 `ReceiverThread` 类,分别用于发送和接收数据。这两个线程都定义了一个信号,用于在数据准备好时发出通知。在主窗口中,我们创建了这两个线程的实例,并将它们的信号和槽连接起来。这样,当 `SenderThread` 发送数据时,它会发出 `dataReady` 信号,然后 `ReceiverThread` 就会接收到这个信号,并调用 `dataReceived` 槽来接收数据。最后,我们启动了这两个线程,并且在主窗口中显示出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值