鱼C论坛

 找回密码
 立即注册
查看: 5649|回复: 73

[作品展示] 爬取新浪微博,实时,关键词搜索内容

[复制链接]
发表于 2020-9-9 16:44:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 疾风怪盗 于 2020-9-9 21:32 编辑

最近又学习了下爬虫的视频,学习了json的数据格式爬取,把之前做的  获取‘松江’为关键词的实施新浪微博  的代码重新做了一遍
发现这是不是就不用cookie了,直接就可以获取?会被封IP么?还是会怎么反爬?
  1. import requests, json, time


  2. class XinlangWeibo():
  3.     def __init__(self, name):
  4.         self.url = f'https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D61%26q={name}&page_type=searchall&page='
  5.         self.headers = {
  6.             'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'}
  7.         self.data = []

  8.     def Get_Data(self, page):  # 主程序,爬取数据
  9.         for num in range(1, page):
  10.             url = self.url + str(num)
  11.             print(url)
  12.             response = requests.get(url=url, headers=self.headers)

  13.             data_all = json.loads(response.content.decode('utf-8'))
  14.             data_all = data_all['data']['cards']

  15.             for i in range(len(data_all)):
  16.                 if data_all[i]['card_type'] == 9:
  17.                     data_temp = {}
  18.                     data_temp['screen_name'] = data_all[i]['mblog']['user']['screen_name']  # 发帖人昵称
  19.                     data_temp['screen_name'] = data_temp['screen_name'] if len(data_temp['screen_name']) > 0 else None
  20.                     data_temp['profile_url'] = data_all[i]['mblog']['user']['profile_url']  # 发帖人主页
  21.                     data_temp['profile_url'] = data_temp['profile_url'] if len(data_temp['profile_url']) > 0 else None
  22.                     data_temp['created_time'] = data_all[i]['mblog']['created_at']  # 发帖时间距离现在时间
  23.                     data_temp['created_time'] = data_temp['created_time'] if len(
  24.                         data_temp['created_time']) > 0 else None
  25.                     data_temp['raw_text'] = data_all[i]['mblog']['raw_text']  # 发帖内容
  26.                     data_temp['raw_text'] = data_temp['raw_text'] if len(data_temp['raw_text']) > 0 else None
  27.                     data_temp['scheme_url'] = data_all[i]['scheme']  # 帖子地址
  28.                     data_temp['scheme_url'] = data_temp['scheme_url'] if len(data_temp['scheme_url']) > 0 else None
  29.                     self.data.append(data_temp)

  30.         time.sleep(3)
  31.         return data_all

  32.     def Save_Josn(self, data_all):
  33.         with open('新浪微博-dataall.json', 'w', encoding='utf-8') as files:  # 保存json文件
  34.             json.dump(data_all, files, ensure_ascii=False, indent=4)

  35.     def Save_Data(self):
  36.         with open('新浪微博-data.txt', 'w', encoding='utf-8') as file:  # 保存帖子内容
  37.             for s in range(0, len(self.data)):
  38.                 file.write(f"第{s + 1}个帖子为:"
  39.                            + "\n" + f"微博发帖人为:{self.data[s]['screen_name']}"
  40.                            + "\n" + f"微博发帖人主页为:{self.data[s]['profile_url']}"
  41.                            + "\n" + f"发帖时间为:{self.data[s]['created_time']}"
  42.                            + "\n" + f"帖子内容为:{self.data[s]['raw_text']}"
  43.                            + "\n" + f"帖子链接为:{self.data[s]['scheme_url']}"
  44.                            + "\n" + "*" * 100 + "\n"
  45.                            + "\n")
  46.         print('已保存')


  47. if __name__ == '__main__':
  48.     xinlangweibo = XinlangWeibo(name='松江')  # 关键词
  49.     data_all = xinlangweibo.Get_Data(page=3)  # 获取页数
  50.     # xinlangweibo.Save_Josn(data_all)
  51.     xinlangweibo.Save_Data()
复制代码

评分

参与人数 2荣誉 +1 鱼币 +10 贡献 +1 收起 理由
紫癜聪 + 1 + 5 + 1 谢谢帮忙
千古 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 23:25:43 | 显示全部楼层
学习学习。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 21:15:19 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 21:05:06 | 显示全部楼层
来,学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 20:52:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 20:34:29 | 显示全部楼层
111111111111111111111111111111111111111111111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 20:18:59 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 17:14:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 16:45:18 | 显示全部楼层
封IP看网易的心情吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 15:08:20 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 13:44:26 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 13:37:11 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 11:20:44 | 显示全部楼层
厉害嘞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-10 15:40:18 | 显示全部楼层
🐮啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-10 15:20:53 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-10 11:00:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-10 08:23:28 | 显示全部楼层

666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-9 16:28:05 | 显示全部楼层
really?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-29 18:35:44 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-29 16:55:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 01:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表