将Webelement.text转换为字符串

时间:2018-01-02 09:05:34

标签: python selenium

我正在尝试使用机器学习来对来自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

编辑:我不知道导致此错误的原因 - 但是如果有人因为类似的错误而发现这篇文章,我只需将每条推文写入文本文件即可解决。

1 个答案:

答案 0 :(得分:0)

当我打开太多浏览器实例并且没有正确关闭它时(通过自动化脚本或手动),我用来获取此错误。当其他浏览器实例逐个被杀死时,此错误将被删除。我发现C:\Users\(yourAccountName)\AppData\Local\Temp目录已完全填满,因此导致NoSuchSession错误。

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