我尝试如下从aliexpress抓取交易历史记录,但是order1,order2和country的输出仅显示会话和元素,而不显示例如order =“ 1 piece”或country =“ FR”
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.aliexpress.com/item/Modyle-2017-New-Fashion-Her-King-and-His-Queen-Stainless-Steel-Wedding-Rings-for-Women-Men/32827876813.html?spm=2114.search0104.3.2.b0db7b0bXHTbvz&ws_ab_test=searchweb0_0,searchweb201602_1_10065_10068_10890_319_10546_317_10548_5730311_10696_453_10084_454_10083_5729211_10618_10307_538_537_536_10059_10884_10887_100031_321_322_10103,searchweb201603_51,ppcSwitch_0&algo_expid=0ffd4f5b-afac-45be-ac7e-a0c97769e137-0&algo_pvid=0ffd4f5b-afac-45be-ac7e-a0c97769e137&transAbTest=ae803_3")
time.sleep(20)
rows = len(driver.find_elements_by_xpath('//*[@id="j-transaction-feedback"]/div[2]/div[1]/div[1]/table/tbody/tr'))
print(rows)
a1 = driver.find_elements_by_xpath('//*[@id="j-transaction-feedback"]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[1]/div/i')
order1 = driver.find_elements_by_xpath('//*[@id="j-transaction-feedback"]/div[2]/div[1]/div[1]/table/tbody/tr[1]/td[2]/div[1]')
order2 = driver.find_elements_by_xpath('//*[@id="j-transaction-feedback"]/div[2]/div[1]/div[1]/table/tbody/tr[2]/td[2]/div[1]')
country = driver.find_elements_by_xpath('//*[@id="j-transaction-feedback"]/div[2]/div[1]/div[1]/table/tbody/tr[2]/td[1]/div/div/b')
print(order1)
print(order2)
print(country)
输出
/usr/local/bin/python3.7 /Users/nayot/PycharmProjects/aliexpress/test2.py
20
[<selenium.webdriver.remote.webelement.WebElement (session="abbb90b60a6a662884cb1642398d2ec4", element="0.5214822951220621-22")>]
[<selenium.webdriver.remote.webelement.WebElement (session="abbb90b60a6a662884cb1642398d2ec4", element="0.5214822951220621-23")>]
[<selenium.webdriver.remote.webelement.WebElement (session="abbb90b60a6a662884cb1642398d2ec4", element="0.5214822951220621-24")>]
Process finished with exit code 0
答案 0 :(得分:1)
使用.text属性是正确的方法。但是,看来您没有正确选择元素,例如
driver.find_elements_by_xpath
返回一个空列表。如果您只想选择一个元素,则应使用
driver.find_element_by_xpath
(请注意缺少的“ s”)。如果您使用列表方法,则显然需要直接通过索引访问元素。
还请注意,您不一定需要输入整个XPath。
'//div[@class="order-num"]'
通常也应该工作。同样,只有在您实际上正确选择了网站上的元素的情况下。