简体   繁体   English

TypeError:WebElement不可迭代

[英]TypeError : WebElement is not iterable

In my Python script I am trying to scrape a Twitter page for up to 5 scrolls but my script is throwing a TypeError stating that WebElements is not iterable. 在我的Python脚本中,我试图刮擦一个Twitter页面(最多5个滚动),但是我的脚本抛出TypeError声明WebElements不可迭代。 Any way to solve this issue. 任何解决此问题的方法。

import time

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

path_chromedriver = '/Users/SubrataMohanty/Desktop/chromedriver'
browser = webdriver.Chrome(path_chromedriver)
base_url = u'https://twitter.com/search?q='
query = u'%40sachin_rt'
url = base_url + query

browser.get(url)
time.sleep(1)

body = browser.find_element_by_tag_name('body')

for _ in range(5) :
    body.send_keys(Keys.PAGE_DOWN)
    time.sleep(0.2)

tweets = browser.find_element_by_class_name('tweet-text')

for tweet in tweets :
    print(tweet.text)

Errors : 错误:

abhijeet-mohanty-2:Desktop SubrataMohanty$ python tweet_scraper.py 
Traceback (most recent call last):
  File "tweet_scraper.py", line 23, in <module>
    for tweet in tweets :
TypeError: 'WebElement' object is not iterable

find_element_by_class_name() returns a single element . find_element_by_class_name()返回单个元素 You meant to find multiple elements by class name - use find_elements_by_class_name() method (note the s ): 您打算按类名称查找多个元素-使用find_elements_by_class_name()方法(注意s ):

tweets = browser.find_elements_by_class_name('tweet-text')
#                        HERE^
for tweet in tweets :
    print(tweet.text)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM