Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中利用Reddit API爬取数据出现错误?

在python中利用Reddit API爬取数据出现错误?

提问于 2024-01-05 11:44:44
回答 2关注 0查看 235
代码语言:text
AI代码解释
复制
import praw
import csv

client_id="03UcgbJEBrDsN-DBsuCU-w",		 # 您的客户 ID
client_secret="HDMkGK9ml2sf8NahSj74LRxTCPE_gA",	 # 您的客户秘密
user_agent="scraping"	 # 您的用户代理


# Reddit API 初始化
reddit = praw.Reddit(client_id=client_id, client_secret=client_secret, user_agent=user_agent)

# 关键词列表
keywords = ['hash']

#创建csv文件
with open('reddit_results.csv', 'w', encoding='utf-8', newline='') as csv_file:
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow(['Author', 'Title', 'Content'])
# 爬取Reddit中的相关内容
for keyword in keywords:
    print(f"Results for keyword: {keyword}\n")
    # 使用搜索功能进行查询
    results = reddit.subreddit('all').search(keyword, sort='relevance', time_filter='all')

    # 输出相关内容的作者和标题
    for submission in results:
        author_id = submission.author.id if submission.author else 'N/A'
        title = submission.title
        content = submission.selftext if submission.is_self else 'Not a self-post'

        print(f"Author: {submission.author}")
        print(f"Title: {submission.title}")
        print(f"Content: {content}")
        print("\n---\n")
        # 写入CSV文件
        csv_writer.writerow([author_id, title, content])

当运行上述脚本时出现以下错误:

代码语言:text
AI代码解释
复制
E:\Anaconda2\envs\my_env2\python.exe F:/GitHub/爬虫/venv/第三章:数据解析/reddit.py
Results for keyword: hash

Traceback (most recent call last):
  File "F:\GitHub\爬虫\venv\第三章:数据解析\reddit.py", line 26, in <module>
    for submission in results:
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\praw\models\listing\generator.py", line 63, in __next__
    self._next_batch()
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\praw\models\listing\generator.py", line 89, in _next_batch
    self._listing = self._reddit.get(self.url, params=self.params)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\praw\util\deprecate_args.py", line 43, in wrapped
    return func(**dict(zip(_old_args, args)), **kwargs)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\praw\reddit.py", line 712, in get
    return self._objectify_request(method="GET", params=params, path=path)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\praw\reddit.py", line 517, in _objectify_request
    self.request(
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\praw\util\deprecate_args.py", line 43, in wrapped
    return func(**dict(zip(_old_args, args)), **kwargs)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\praw\reddit.py", line 941, in request
    return self._core.request(
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\sessions.py", line 328, in request
    return self._request_with_retries(
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\sessions.py", line 254, in _request_with_retries
    return self._do_retry(
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\sessions.py", line 162, in _do_retry
    return self._request_with_retries(
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\sessions.py", line 234, in _request_with_retries
    response, saved_exception = self._make_request(
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\sessions.py", line 186, in _make_request
    response = self._rate_limiter.call(
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\rate_limit.py", line 46, in call
    kwargs["headers"] = set_header_callback()
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\sessions.py", line 282, in _set_header_callback
    self._authorizer.refresh()
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\auth.py", line 378, in refresh
    self._request_token(grant_type="client_credentials", **additional_kwargs)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\auth.py", line 155, in _request_token
    response = self._authenticator._post(url=url, **data)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\prawcore\auth.py", line 59, in _post
    raise ResponseException(response)
prawcore.exceptions.ResponseException: received 401 HTTP response

Process finished with exit code 1

回答 2

大Hero

发布于 2025-04-26 13:42:58

你遇到的这个401报错啊,多半是Reddit账号没设置对!我之前也踩过这个坑:明明照着教程填了client_id和client_secret,结果死活连不上API。后来才发现两个细节坑死人——

  1. 用户代理得编故事:user_agent不能随便写"scraping",要伪装成正经应用,比如"NewsMonitor/2.0 by DataLover"(假装是个新闻监控软件)
  2. IP地址被拉黑:用自家网络狂刷接口,Reddit直接把整个网段封了(别问我怎么知道的🙃)

后来转用亮数据的Reddit专用接口,简直打开新世界——根本不用管这些破事!他们的方案直接打包好:

  • 自动切换全球IP,上次抓基金网站😂讨论帖时,系统自己从美国切到了德国住宅IP
  • 直接返回整理好的Excel文件,连emoji表情符号都给转成文字了
  • 最关键的是绕开了API限制,能抓取到评论区隐藏的关联帖子

现在帮客户做舆情分析,直接甩给他们这个工具,再也不用半夜爬起来解封账号了...(当然要遵守平台规则别瞎搞)

一凡sir

发布于 2024-01-06 02:23:00

received 401 HTTP response

拒绝访问了

和开发者交流更多问题细节吧,去 写回答
相关文章
利用python爬取人人贷网的数据
人人贷网站需要用户登录才能看到其相应的借贷人信息。也就是说在爬取数据时,需要用户登录。回顾之前的代码,我想是保存cookie这种方法是不能用了。必须找到一种新的方法来模拟登录网站。查了许多资料,数据捉取无外乎有3种方法: 1.直接抓取数据。 2.模拟浏览器抓取数据。 3.基于API接口抓取数据 综合分析,我决定用第2种方法"模拟浏览器登录",那得找好相应的python包,网上有:mechanize,selenium等等。 1.mechanize包的尝试 br.select_form(nr = 0)
机器学习AI算法工程
2018/03/14
1.9K0
利用python爬取人人贷网的数据
利用selenium爬取数据总结
selenium的介绍 知识点: 了解 selenium的工作原理 了解 selenium以及chromedriver的安装 掌握 标签对象click点击以及send_keys输入 ---- 1. selenium运行效果展示 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium
北山啦
2022/11/27
1.3K0
通过python爬取数据
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
py3study
2020/01/10
8230
Python网页爬取_在pycharm里面如何爬取网页
使用Python爬取简单数据 闲暇时间学习Python,不管以后能否使用,就算了解计算机语言知识。 因为有一点Java基础,所以Python的基本语法就很快的过了一遍,表达或许有点混乱,以后慢慢改进。 一、导入爬取网页所需的包。
全栈程序员站长
2022/11/04
2.1K0
Python网页爬取_在pycharm里面如何爬取网页
【Python】利用python爬取微信朋友info
#前言 今天在工作室学习时,偶然被某公众号推送了《我用python爬了爬自己的微信朋友》,因为本身也是在学习python的过程,索性就中断了手头的工作,点进去看,并操作了一番,学习了itchat模块,并查阅了相关资料做了一些拓展学习。
肓己
2021/08/12
7261
python爬虫教程:《利用Python爬取表情包》
Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取!
python学习教程
2019/09/03
1.1K0
python爬虫教程:《利用Python爬取表情包》
PYTHON初学之API爬取天气预报数据
一直看到python好多人学,终于自己耐不住性子,还是开始学习起来了。 初学python,看到了这个经典的项目,于是就开始进行学习。并进行了相应的改(乱)善(改),将原本项目采用的储存数据库改为mysql,只储存近三天的天气情况,增加定时执行,成功之后邮件提醒等。
布衣者
2021/09/07
8140
利用python爬取网易云音乐,并把数据存入mysql
这是我的第四篇原创文章 在简单学习了python爬虫后,又想继续折腾,进而找到了这个网易云音乐,因为本人平时就是用它听的歌,也喜欢看歌里的评论,所以就爬网易云音乐评论吧,那么开始吧! 正式进入主题 首
sergiojune
2018/04/04
6.2K10
利用python爬取网易云音乐,并把数据存入mysql
利用xpath爬取图片
学习了xpath后,又有一个实战二了,利用xpath爬取网站上的图片,由于学的时候疯狂报错,决定再做一遍,然后逐步分析,加深理解,后续学习一下怎么爬取豆瓣评分前100的电影,然后以CSV的格式展示(感觉所有学爬虫的都有白嫖豆瓣电影这个项目。)
y191024
2022/09/20
1.3K0
利用xpath爬取图片
Python 代理爬取网站数据
代理IP通过https://www.kuaidaili.com/free/ 获取,我使用的的是http 协议的代理。根据自己需求选择http或者https 协议的页面。
Lansonli
2021/10/09
7180
Python爬取网页数据
爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息
一觉睡到小时候
2019/08/06
5.8K0
利用 Python 爬取 QQ 空间说说和相册
QQ 空间在 2005 年被腾讯开发,已经经历了 15 个年头,在还没有微信的年代,看网友发表的心情、心事、照片大多都在 QQ 空间的里。它承载了80、90 后的大量青春,下面我们一起用 selenium 模块导出说说和相册回忆青春吧。
张俊红
2021/06/25
3.2K0
利用 Python 爬取 QQ 空间说说和相册
利用Python爬取散文网的文章实例
本文主要给大家介绍的是关于python爬取散文网文章的相关内容,分享出来供大家参考学习,下面一起来看看详细的介绍:
用户10781703
2023/10/10
2070
利用Python爬取散文网的文章实例
如何利用 Beautiful Soup 爬取网页数据
Beautiful Soup将复杂的HTML文档转换成树形结构,树中的每个节点都是Python对象,对象可归纳为以下4种;
村雨遥
2022/06/15
3790
如何利用 Beautiful Soup 爬取网页数据
利用requests库爬取图片
python爬虫在爬取小项目时使用requests库比起scrapy框架更加的方便、快捷,而scrapy框架常用于数据量大、源地址复杂。 Requests Scrapy 页面级爬虫 网站级爬虫 功能库 框架 并发性考虑不足,性能较差 并发性好,性能较高 重点在于页面下载 重点在于爬虫结构 定制灵活 一般定制灵活,深度定制困难 上手十分简单 入门稍难 安装requests库和BeautifulSoup4库,命令行 1pip3 install requests 2pip3 install BeautifulS
得野
2020/04/26
4990
利用爬虫爬取网页连接
针对如何定向获取网页连接问题,提出利用爬虫技术方法,通过实验,证明该方法是有效的。当前只能定向爬取到一个网页链接,不能实现爬取多个网页链接和不定向爬取数据。
算法与编程之美
2023/08/22
2620
利用爬虫爬取网页连接
Python3--批量爬取数据之调用有道api进行翻译
上代码: # coding=utf-8 import urllib,urllib.request from fake_useragent import UserAgent import json import time import hashlib import urllib.parse import requests import random import csv,re class YouDaoFanyi: def __init__(self, appKey, appSecret):
K同学啊
2019/01/22
1.1K0
使用 Python 爬取网页数据
urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 HTML 解析库, 可以编写出用于采集网络数据的大型爬虫;
IMWeb前端团队
2019/12/04
1.6K0
python爬取招聘网站数据
browser.find_element_by_xpath('//div[@class="body-container showData"]/div/div[2]').click() # 点击广告
JQ实验室
2022/02/10
1.9K0
爬取数据不是非要Python
最近有朋友问是否可以不用Python编程就能爬取数据并分析,想起来正好之前写了一篇文章,关于Web Scraper的使用,由于之前忘记标记原创,今天就再发一次。
用户1564362
2020/02/25
6280
爬取数据不是非要Python

相似问题

使用python爬取Reddit数据出现错误?

1108

基于Python的股票数据爬取?

1229

如何用python爬取数据并保存到excel?

2357

怎样在不使用API的前提下爬取Twitter数据?

2753

您好请问爬取新浪新闻的API 具体在哪里?我想爬取娱乐板块的?

2307
相关问答用户
新浪微博 | 高级总监擅长4个领域
萃橙科技 | 合伙人擅长4个领域
某公司 | 程序员擅长1个领域
腾讯云TDP | 产品KOL擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档