我尝试从全球速卖通中抓取交易历史,如下所示,但order1、order2和country的输出仅显示会话和元素,而不显示示例,如order = "1块“或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
发布于 2018-12-31 00:38:38
正如您已经尝试过的那样,使用.text属性是正确的方法,Stylez指出。但是,您似乎没有正确选择元素,因为
driver.find_elements_by_xpath
返回一个空列表。如果只想选择一个元素,则应使用
driver.find_element_by_xpath
(请注意缺少的"s")。如果使用列表方法,显然需要通过索引直接访问元素。
还要注意,您不一定需要输入整个XPath。
'//div[@class="order-num"]'
正常情况下应该也能工作。同样,这仅在您实际正确选择网站上的元素时才有效。
https://stackoverflow.com/questions/53979045
复制相似问题