简介
简单的爬虫,抓取 weibo 句读APP的精选句子,没什么技术含量,主要是我想做个一言的api。
开发工具
- Python 3.8
- Pycharm 2020 (社区版)
推荐安装一个插件 JSON-handle
, 干什么的呢? 在处理json数据时我们就不需要再去网页中找在线的json解析了,使用也很方便,直接在地址栏复制包含json数据的链接就好啦。😊
实现思路
- 需要登录,之后定位到要爬取的主页(搜索句读后点击博主头像到主页)
- 点击精选栏,打开开发者工具
- 分析XHR找到对应的json数据
- 发起请求,处理请求,保存数据
代码实现过程
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()
评论 (0)