Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用python爬取Reddit数据出现错误?

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

提问于 2024-01-11 13:31:49
回答 0关注 0查看 98
代码语言:text
AI代码解释
复制
from selenium import webdriver
from selenium.common.exceptions import TimeoutException, NoSuchElementException, NoSuchWindowException
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
import time
from pathlib import Path
from selenium.webdriver.support.ui import WebDriverWait#等待
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from src import utils

class Reddit_Spider:
    def __init__(self,exp_dir,dark_keywords):
        self.exp = Path(exp_dir)
        self.exp.mkdir(parents=True, exist_ok=True)
        self.start_url="https://www.reddit.com/search?q="
        self.dark_keywords = dark_keywords
    def get_html(self, url):  # 发送请求,获取响应
        #首先,它创建了一个FirefoxOptions对象,该对象用于配置和自定义Firefox浏览器的选项。
        options = Options()
        #这一行设置了Firefox浏览器的二进制文件位置。具体来说,binary_location属性被设置为指向firefox.exe可执行文件的路径。
        options.binary_location = r'D:\洋葱\Tor Browser\Browser\firefox.exe'#将启动文件设置为tor的firefox.exe的启动路径。
        #在我反复的测试下发现tor的firefox.exe的配置文件的参数和正常火狐的不一样。故我们需要将配置文件的路径传给我们的selenium。
        profile = FirefoxProfile(r'D:\洋葱\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default')#配置文件的路径
        driver = webdriver.Firefox(executable_path=r'D:\洋葱\Tor Browser\Browser\geckodriver.exe', options=options,firefox_profile= profile)
        time.sleep(20)
        driver.get(url)
        time.sleep(10)
        return driver

    def read_keywords_from_file(self):
        with open(self.keywords_file, 'r') as file:
            keywords = [line.strip() for line in file]
        return keywords

    def search_by_keywords(self, driver, keyword):
        search_box = driver.find_element(By.XPATH, '//span[@class="input-container"]')
        search_box.clear()
        search_box.send_keys(keyword)
        search_box.submit()
        time.sleep(5)

    

    def get_data(self, driver):
        string_data = []
        reddit = driver.find_elements(By.XPATH, '//reddit-feed[@label="search-results-page-tab-posts"]')
        for reddit in reddit:
            tweet_text = reddit.find_element(By.XPATH, './/faceplate-tracker/post-consume-tracker/div/faceplate-tracker/a').text
            user_info = reddit.find_element(By.XPATH, './/faceplate-tracker/post-consume-tracker/div/div/span/shreddit-async-loader/faceplate-hovercard/faceplate-tracker/a').text
            string_data.append({"tweet_text": tweet_text, "user_info": user_info})
        return string_data
        

    def save_data(self, data,keyword):
        output_corpus = self.exp / ('corpus_Reddit')
        output_corpus.mkdir(parents=True, exist_ok=True)
        print(data)
        utils.CsvFile.dumplist_zhengban(data, str(output_corpus / f'Reddit_data_corpus_{keyword}.csv'))

    def run(self):
        driver = self.get_html(self.start_url)
        dark_keywords = self.dark_keywords
        for keyword in dark_keywords:
            self.search_by_keywords(driver,keyword)
            data = self.get_data(driver)
            self.save_data(data,keyword)

if __name__ == '__main__':
    exp = '../../experiments'
    dark_keywords = 'euphemism_answer_drug.txt'
    dark_keywords_spider = Reddit_Spider(exp_dir=exp,dark_keywords=dark_keywords)
    dark_keywords_spider.run()

出现错误并且Tor浏览器显示无法连接

代码语言:text
AI代码解释
复制
E:\selenium_scraper\src\corpus_collection\zhengbanzhongwen_spider.py:25: DeprecationWarning: firefox_profile has been deprecated, please use an Options object
  profile = FirefoxProfile(r'D:\洋葱\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default')#配置文件的路径
E:\selenium_scraper\src\corpus_collection\zhengbanzhongwen_spider.py:26: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Firefox(executable_path=r'D:\洋葱\Tor Browser\Browser\geckodriver.exe', options=options,firefox_profile= profile)
E:\selenium_scraper\src\corpus_collection\zhengbanzhongwen_spider.py:26: DeprecationWarning: firefox_profile has been deprecated, please pass in an Options object
  driver = webdriver.Firefox(executable_path=r'D:\洋葱\Tor Browser\Browser\geckodriver.exe', options=options,firefox_profile= profile)
Traceback (most recent call last):
  File "E:\selenium_scraper\src\corpus_collection\zhengbanzhongwen_spider.py", line 141, in <module>
    changanbuye_spider.run()
  File "E:\selenium_scraper\src\corpus_collection\zhengbanzhongwen_spider.py", line 130, in run
    driver = self.get_html(self.start_url)
  File "E:\selenium_scraper\src\corpus_collection\zhengbanzhongwen_spider.py", line 28, in get_html
    driver.get(url)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 441, in get
    self.execute(Command.GET, {'url': url})
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute
    self.error_handler.check_response(response)
  File "E:\Anaconda2\envs\my_env2\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Failed to decode response from marionette


Process finished with exit code 1

是什么原因造成的

回答

成为首答用户。去 写回答
相关文章
使用 Python 爬取网页数据
urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 HTML 解析库, 可以编写出用于采集网络数据的大型爬虫;
py3study
2020/01/16
1.7K0
使用 Python 爬取网页数据
使用 Python 爬取网页数据
urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 HTML 解析库, 可以编写出用于采集网络数据的大型爬虫;
IMWeb前端团队
2019/12/04
1.6K0
通过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
7780
使用xpath爬取数据
符号 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。
北山啦
2022/11/27
5860
使用 Python 爬取故宫壁纸
首先,我们通过简单的查看,知道故宫壁纸的页面并没有使用 JavaScript 载入。
OhhhCKY
2022/12/28
5680
使用Python爬取COVID-19疫情数据
新型冠状病毒感染的肺炎疫情爆发后,对人们的生活产生很大的影响。当前感染人数依然在不断变化。每天国家卫健委和各大新闻媒体都会公布疫情的数据,包括累计确诊人数、现有确诊人数等。
数据酷客
2020/04/27
9.4K3
使用Python爬取COVID-19疫情数据
使用Python爬取社交网络数据分析
数据抓取 一、直接抓取数据 二、模拟浏览器抓取数据 三、基于API接口抓取数据 数据预处理 可视化 数据分析 扩散深度 扩散速度 空间分布 节点属性 网络属性 传播属性 结语 在线社交网站为人们提供了一个构建社会关系网络和互动的平台。每一个人和组织都可以通过社交网站互动、获取信息并发出自己的声音,因而吸引了众多的使用者。作为一个复杂的社会系统,在线社交网站真实地记录了社会网络的增长以及人类传播行为演化。通过抓取并分析在线社交网站的数据,研究者可以迅速地把握人类社交网络行为背后所隐藏的规律、机制乃至一般
机器学习AI算法工程
2018/03/14
5.6K0
使用Python爬取社交网络数据分析
Python 代理爬取网站数据
代理IP通过https://www.kuaidaili.com/free/ 获取,我使用的的是http 协议的代理。根据自己需求选择http或者https 协议的页面。
Lansonli
2021/10/09
6640
Python爬取网页数据
爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息
一觉睡到小时候
2019/08/06
5.8K0
【python笔记】使用python的pyquery简单爬取数据demo
#!/bin/env python #_*_ coding: utf-8 _*_ from pyquery import PyQuery as pq import time import random def get_appinfo_from_yyb(app_pack,storenum): url=xxxxxxxxxxxxxx data = pq(url) if storenum==1: app_name = data('.det-name-int').text() app_down_c
python亦希
2022/01/24
2690
使用requests爬取拉勾网python职位数据
本文想通过爬取拉勾网Python相关岗位数据,简单梳理Requests和xpath的使用方法。 代码部分并没有做封装,数据请求也比较简单,所以该项目只是为了熟悉requests爬虫的基本原理,无法用于稳定的爬虫项目。
朱卫军 AI Python
2022/04/02
7050
使用requests爬取拉勾网python职位数据
python使用aiohttp通过设置代理爬取基金数据
说到python爬虫,我们就会想到它那强大的库,很多新手小白在选择框架的时候都会想到使用Scrapy,但是仅仅停留在会使用的阶段。在实际爬虫过程中遇到反爬机制是再常见不过的,今天为了增加对爬虫机制的理解,我们就通过手动实现多线程的爬虫过程,同时引入IP代理池进行基本的反爬操作。
小白学大数据
2023/06/15
5540
使用Python爬取网站数据并进行图像处理
在互联网时代,网站数据是一种宝贵的资源,可以用于分析、挖掘、展示等多种目的。但是,如何从海量的网页中提取我们需要的数据呢?Python是一种强大而灵活的编程语言,它提供了许多用于爬虫和图像处理的库和工具,可以帮助我们实现这一目标。本文将介绍如何使用Python爬取网站数据并进行图像处理的基本步骤和方法。
jackcode
2023/08/14
4360
使用Python爬取网站数据并进行图像处理
Python使用BeautifulSoup爬取妹子图
最近突然发现之前写的妹子图的爬虫不能用了,估计是网站又加了新的反爬虫机制,本着追求真理的精神我只好又来爬一遍了!
Awesome_Tang
2018/09/11
1.4K0
Python使用BeautifulSoup爬取妹子图
使用python urllib进行网页爬取
编写一段程序,从网站上抓取特定资源,比如自动化的下载kegg colorful pathway的通路图,这样的程序就是一个基础的网络爬虫了。在python中,通过内置模块urlib, 可以实现常规的网页抓取任务。
生信修炼手册
2020/05/28
1.9K0
使用Python进行网站数据爬取和视频处理
在互联网时代,我们经常需要从网站上获取数据并进行分析或处理。有时候,我们还需要对视频数据进行一些操作,比如剪辑、转码、合成等。Python是一门非常适合做数据分析和视频处理的编程语言,它有很多强大的库和工具可以帮助我们完成这些任务。本文将介绍如何使用Python的requests模块爬取网站数据并进行视频处理的方法和步骤。
jackcode
2023/08/10
5520
使用Python进行网站数据爬取和视频处理
爬取数据不是非要Python
最近有朋友问是否可以不用Python编程就能爬取数据并分析,想起来正好之前写了一篇文章,关于Web Scraper的使用,由于之前忘记标记原创,今天就再发一次。
用户1564362
2020/02/25
6210
爬取数据不是非要Python
python爬取热搜评论数据
在内地颇具影响力的TVB与淘宝直播的首次合作已经开启了,特别是在合同公布之后,TVB的股价大涨。近些年,在明星涌入跨界直播带货的浪潮中,也不乏TVB艺人的身影,
小白学大数据
2023/03/08
7660
python爬取招聘网站数据
browser.find_element_by_xpath('//div[@class="body-container showData"]/div/div[2]').click() # 点击广告
JQ实验室
2022/02/10
1.9K0
爬虫 | Python爬取网页数据
之前也更过爬虫方面的内容 如何从某一网站获取数据,今天再更一次。后面会陆续更一些爬虫方面的内容(HTML, requests, bs4, re ...),中间可能会插播一些 numpy 和 pandas 方面的内容。在时间允许的情况下会更一些WRF模式方面的内容。也算是立了个更新内容的 flag,但是更新时间就不立了==
bugsuse
2020/04/21
4.7K0
爬虫 | Python爬取网页数据

相似问题

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

1213

基于Python的股票数据爬取?

0207

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

1340

java怎样爬取js动态请求的数据?

0230

编写一个爬取QQ音乐 的python代码?

087
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
到家集团 | 技术VP擅长5个领域
腾讯云TDP | KOL擅长5个领域
擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文