【发布时间】:2021-08-10 19:26:56
【问题描述】:
我正在尝试抓取此网站。我得到了第一组数据,但是当我尝试使用 for 循环进行迭代时,它返回一个错误。我已经尝试过多次更改 user_data 类名,但它仍然拒绝迭代。
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get('https://soundcloud.com/jujubucks')
print(driver.title)
user_data = driver.find_elements_by_class_name('userStreamItem')
for user in user_data:
search = driver.find_element_by_xpath('.//span[@class="soundTitle__usernameText"]')
search_song = driver.find_element_by_xpath('.//span[@class=""]')
search_date = driver.find_element_by_xpath('.//span[@class="sc-visuallyhidden"]')
stats = driver.find_element_by_css_selector('.soundStats.sc-ministats-group .sc-
visuallyhidden')
print(f'''
Artist: {search.text}
Song Title: {search_song.text}
Upload Date: {search_date.text}
Track Plays: {stats.text}
''')
driver.quit()
【问题讨论】:
-
在
for循环中,应该是search = user.find_element_by_xpath(...)"逻辑:你想遍历user_data。现在,您正在遍历driver,这(如预期的那样)会返回错误!
标签: python html selenium web-scraping iterator