【发布时间】:2021-02-19 16:17:50
【问题描述】:
Selenium 在从网站准确检索 9 个条目后捕获 NoSuchElementException。我认为问题可能在于页面内容没有足够的时间加载,但我不确定。
我在YouTube tutorial(第十九分钟)之后编写了代码。
import requests
import json
import re
from bs4 import BeautifulSoup
from selenium import webdriver
import time
driver = webdriver.Chrome()
URL = 'https://www.alibaba.com//trade/search?fsb=y&IndexArea=product_en&CatId=&SearchText=white+hoodie'
time.sleep(1)
driver.get(URL)
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
time.sleep(2)
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
time.sleep(2)
items = driver.find_elements_by_css_selector('.J-offer-wrapper')
num = 1
for i in items:
print(num)
product_name = i.find_element_by_css_selector('h4').text
price = i.find_element_by_css_selector('.elements-offer-price-normal').text
time.sleep(0.5)
num += 1
print(price, product_name)
#driver.close()
如果您知道 Selenium 为何在第 10 个条目处停止以及如何解决此问题,请分享。
【问题讨论】:
-
那是因为第 10 个元素、第 20 个、第 30 个等……是没有价格的“广告”。 imgur.com/a/ExoFNVA。最好尝试一下以某种方式跳过它: price = i.find_element_by_css_selector('.elements-offer-price-normal').text except NoSuchElementException: print("")
标签: python-3.x selenium web-scraping