python爬取weibo句读的精选句子

redballoon
2022-11-14 / 0 评论 / 6 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年02月20日,已超过36天没有更新,若内容或图片失效,请留言反馈。

简介

简单的爬虫,抓取 weibo 句读APP的精选句子,没什么技术含量,主要是我想做个一言的api。


Snipaste_2022-11-14_21-13-23.png

开发工具

  • Python 3.8
  • Pycharm 2020 (社区版)
推荐安装一个插件 JSON-handle , 干什么的呢? 在处理json数据时我们就不需要再去网页中找在线的json解析了,使用也很方便,直接在地址栏复制包含json数据的链接就好啦。😊

实现思路

  1. 需要登录,之后定位到要爬取的主页(搜索句读后点击博主头像到主页)
  2. 点击精选栏,打开开发者工具
  3. 分析XHR找到对应的json数据
  4. 发起请求,处理请求,保存数据

代码实现过程

import random
import requests
import time

"""微博句读博主精选栏目文案采集
ps: 好像精选的内容隔一段时间采集都是不一样,
"""
def get_json():
    for i in range(1, 6):
        url = f'https://weibo.com/ajax/profile/myhot?page={i}&feature=2&uid=5795042732'
        headers = {
            # 换自己的cookie
            'cookie': cookie,
            'referer': 'https://weibo.com/judourili?tabtype=home',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
            'x-requested-with': 'XMLHttpRequest',
            'x-xsrf-token': 'uKHV-eRb8dpiNnmHKprNBbTz'  # 需要更换
        }
        time.sleep(random.randint(1, 4))
        response = requests.get(url, headers=headers).json()
        # print(response)
        dict_data = response['data']['list']
        for n in range(len(dict_data)):
            text_data = dict_data[n]['text_raw'].replace('\n', '\t')
            with open('data2.txt', mode='a', encoding='utf-8') as f:
                f.write(text_data + '\n')
        print(f'download---{i}page---ok')


if __name__ == '__main__':
    get_json()

执行结果

Snipaste_2023-02-18_23-37-57.png

0

评论 (0)

取消