我尝试使用机器学习来对来自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写到一个文本文件中来解决这个问题。在
当我打开了太多的浏览器实例而没有正确地关闭它(通过自动化脚本或手动方式)时,我会遇到这个错误。当其他浏览器实例被逐个终止时,此错误将被删除。我发现
C:\Users\(yourAccountName)\AppData\Local\Temp
目录已完全填满,因此导致NoSuchSession
错误。在首选的解决方案是查看是否打开了太多的浏览器/选项卡。移除它们。或者手动删除
Temp
路径上的所有内容并尝试。在相关问题 更多 >
编程相关推荐