转换Webelement.文本一根绳子

2024-03-28 20:58:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用机器学习来对来自twitter的数据进行情绪分析。为了聚合数据,我创建了一个类 预处理数据。为了清理和预处理数据,我想将每条tweet的文本转换为一个字符串。但是,当massMine方法的内部for循环中的代码行被调用时,我得到一个WebDriverException:没有这样的会话。下面是相关的代码位,如有任何输入,将不胜感激,谢谢。在

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import numpy as np
import pandas
import re
class TweetMiner(object):


  def __init__(self):
    self.base_url = u'https://twitter.com/search?q=from%3A'
    self.raw_data = []           
  def mineTweets(self, query, tweet_quota):
      '''
       Mine data from a singular twitter account,
       input consists of a twitter handle, and a 
       value indicating how much data to mine
       Ex: “@diddy” should be inputted as “diddy”
    '''
    browser = webdriver.Chrome()
    url = self.base_url + query
    browser.get(url)
    time.sleep(1)
    body = browser.find_element_by_tag_name('body')
    for _ in range(tweet_quota):
      body.send_keys(Keys.PAGE_DOWN)
      time.sleep(0.2)
    tweets = browser.find_elements_by_class_name('tweet-text')
    for tweet in tweets:
      print(tweet.text)
    browser.close() 
    return tweets

  def massMine(self, inputArray, dataSize):
    '''
       Mine data from an array of twitter
       accounts, input array consists of twitter
       handles and a value indicating how much
       data to mine
       Ex: “@diddy” should be inputted as “diddy”
    '''
    for user in inputArray:
      rtn = ""
      tweets = self.mineTweets(user,dataSize)
      for tweet in tweets:
        rtn += (tweet.text)
    return rtn

编辑:我不知道是什么导致了这个错误,但是如果有人发现这篇文章有类似的错误,我可以通过简单地将每条tweet写到一个文本文件中来解决这个问题。在


Tags: 数据infromimportselfbrowserurlfor
1条回答
网友
1楼 · 发布于 2024-03-28 20:58:01

当我打开了太多的浏览器实例而没有正确地关闭它(通过自动化脚本或手动方式)时,我会遇到这个错误。当其他浏览器实例被逐个终止时,此错误将被删除。我发现C:\Users\(yourAccountName)\AppData\Local\Temp目录已完全填满,因此导致NoSuchSession错误。在

首选的解决方案是查看是否打开了太多的浏览器/选项卡。移除它们。或者手动删除Temp路径上的所有内容并尝试。在

相关问题 更多 >