簡體   English   中英

使用python和selenium從表中抓取數據時遇到的問題

[英]Facing issues while scraping data from a table using python with selenium

我編寫了一個腳本,將python與硒結合使用以從目標頁面解析表,可以按照下面為清晰起見嘗試執行的一些步驟來訪問目標頁面。 它確實到達目的地,但是在從該表中抓取數據時,它會在控制台中顯示“無法找到元素”錯誤。 我嘗試使用在線xpath測試儀來查看是否錯誤,但是我發現我在腳本中為“ td_data”使用的xpath是正確的。 我想,我在這里所缺少的是我所不知道的。 希望有人來研究它並為我提供解決方法。 順便說一句,站點鏈接在我的腳本中給出。

鏈接以查看該表的html內容:“ https://www.dropbox.com/s/kaom5qzk78xndqn/Partial%20Html%20content%20for%20the%20table.txt?dl=0

達到我的腳本能夠維護的目標頁面的步驟:

  1. 選擇“我已閱讀並理解以上內容”
  2. 將關鍵字“ pump”放在“選擇醫療設備”下方的輸入框中。
  3. 選擇復選框“找到用於“泵”的設備”。
  4. 最后,按搜索按鈕

到目前為止,我嘗試過的腳本:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('http://apps.tga.gov.au/Prod/devices/daen-entry.aspx')

driver.find_element_by_id('disclaimer-accept').click()
time.sleep(5)

driver.find_element_by_id('medicine-name').send_keys('pump')
time.sleep(8)

driver.find_element_by_id('medicines-header-text').click()

driver.find_element_by_id('submit-button').click()
time.sleep(7)

for item in driver.find_elements_by_xpath('//div[@class="table-responsive"]'):
    for tr_data in item.find_elements_by_xpath('.//tr'):
        td_data = tr_data.find_element_by_xpath('.//span[@class="hovertext"]//a')
        print(td_data.text)

driver.close()

您為什么不這樣做:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('http://apps.tga.gov.au/Prod/devices/daen-entry.aspx')

driver.find_element_by_id('disclaimer-accept').click()
time.sleep(5)

driver.find_element_by_id('medicine-name').send_keys('pump')
time.sleep(8)

driver.find_element_by_id('medicines-header-text').click()

driver.find_element_by_id('submit-button').click()
time.sleep(7)

for item in driver.find_elements_by_xpath(
'//table[@id]/tbody/tr/td[@class]/span[@class]/a[@id]'
):
    print(item.text)

driver.close()

輸出:

27233
27283
27288
27289
27390
27413
27441
27520
25445
27816
27866
27970
28033
28238
26999
28264
28407
28448
28437
28509
28524
28553
28647
28677
28646

也許您想考慮使用driver.page_source保存頁面,拔出表,並將其另存為html文件。 然后使用html中的pandas將表打開到數據框中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM