我正在嘗試獲取下面網址中顯示的表格。但是結果漏掉了第一行(2021-11)和最后一列(凈投放(億))。我做錯了什么?
from selenium import webdriver
driver = webdriver.Firefox(executable_path = '/usr/local/bin/geckodriver')
driver.get('http://www.chinamoney.com.cn/chinese/hb/')
rws = driver.find_elements_by_xpath("//table/tbody/tr")
r = len(rws)
cols = driver.find_elements_by_xpath("//thead/tr/td")
c = len(cols)
element = []
row = []
for i in range(1,r):
for j in range(1,c):
d=driver.find_element_by_xpath("//tr[" str(i) "]/td[" str(j) "]").text
row.append(d)
element.append(row)
driver.close()
element
uj5u.com熱心網友回復:
- 您應該使用從 0 開始的范圍,而不是從 1
- 此外,您應該添加一些等待,讓頁面在訪問表內容之前完全加載。
我將在這里添加一個簡單的延遲,但最好使用顯式等待。請查看以下代碼是否更適合您:
from selenium import webdriver
driver = webdriver.Firefox(executable_path = '/usr/local/bin/geckodriver')
driver.get('http://www.chinamoney.com.cn/chinese/hb/')
time.sleep(5)
rws = driver.find_elements_by_xpath("//table/tbody/tr")
r = len(rws)
cols = driver.find_elements_by_xpath("//thead/tr/td")
c = len(cols)
element = []
row = []
for i in range(r):
for j in range(c):
d=driver.find_element_by_xpath("//tr[" str(i) "]/td[" str(j) "]").text
row.append(d)
element.append(row)
driver.close()
element
uj5u.com熱心網友回復:
由于for loop startsfrom index 1,元素 atindex 0被跳過。
表的最后兩行是空的。
要從表中獲取所有值,請嘗試如下操作:
driver.get("http://www.chinamoney.com.cn/chinese/hb/")
rows = driver.find_elements_by_xpath("//table//tr")
element = []
for row in rows:
columns = row.find_elements_by_xpath(".//td") # Put a dot in the xpath to get an element from an element.
list_row = []
for col in columns:
list_row.append(col.text)
element.append(list_row)
print(element)
[['日期', '投放量(億)', '回籠量(億)', '凈投放(億)'], ['2021-11', '2200', '12200', '-10000'], ['2021-10', '13900', '12300', '1600'], ['2021-09', '11800', '5900', '5900'], ['2021-08', '4200', '2600', '1600'], ['2021-07', '2600', '3200', '-600'], ['2021-06', '3100', '2100', '1000'], ['2021-05', '1900', '2000', '-100'], ['2021-04', '2200', '2100', '100'], ['2021-03', '2400', '2500', '-100'], ['2021-02', '8300', '11440', '-3140'], ['2021-01', '10740', '12450', '-1710'], ['2020-12', '9150', '8900', '250'], ['2020-11', '17550', '17200', '350'], ['', '', '', ''], ['', '', '', '']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/351742.html
標籤:硒 html-table
下一篇:無法呼叫“org.openqa.selenium.WebDriver.get(String)”,因為“this.driver”為空
