我正在尝试使用机器学习来对来自twitter的数据进行情绪分析。为了汇总数据,我创建了一个将要挖掘和挖掘的类 预处理数据。为了清理和预处理数据,我想将每条推文的文本转换为字符串。但是,当调用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
编辑:我不知道导致此错误的原因 - 但是如果有人因为类似的错误而发现这篇文章,我只需将每条推文写入文本文件即可解决。
答案 0 :(得分:0)
当我打开太多浏览器实例并且没有正确关闭它时(通过自动化脚本或手动),我用来获取此错误。当其他浏览器实例逐个被杀死时,此错误将被删除。我发现C:\Users\(yourAccountName)\AppData\Local\Temp
目录已完全填满,因此导致NoSuchSession
错误。
首选解决方案是查看是否有太多浏览器/标签打开。删除它们。或者手动删除Temp
路径上方的所有内容并尝试。