簡體   English   中英

找到標簽后如何使用 beautifulsoup 獲取 xpath

[英]How to get xpath using beautifulsoup after we find a tag

我嘗試了 beautifulsoup 來獲取元素列表,然后我想要 xpath 以便我可以點擊它,我想要點擊的按鈕是任意的,它可以根據數據在任何地方。

例如。

from bs4 import BeautifulSoup as bs

soup=bs(driver.page_source,'html.parser') #used selenium
soup.find('div', class_='dataTable').find_all('span',class_='blue-icon')

Class 名稱可以是我剛剛編造的任何名稱,但我想知道主要的事情是如何獲得 xpath。 它給了我兩個跨度標簽的列表,實際上這些跨度標簽是一個按鈕,可以在表中的任何位置,有時它們不會,所以我想如果我可以使用它來找到它的 xpath 以便我可以使用 selenium 單擊每當我看到這個跨度標簽時按鈕。 如果你想看看這個網站: https://www.screener.in/company/GRANULES/consolidated/現在有一些表格在點擊后有加號(+)它提供了額外的信息,所以我想也刮掉它,但是不點擊它我就無法刮掉它,所以這是我想到的方法,但我無法找到符號。 如果有人可以幫助我解決這個問題。 可以有任何其他方法來做到這一點,這也會有所幫助。

謝謝

點擊按鈕:

要與按鈕交互,您需要使瀏覽器自動化,例如使用 selenium。


針對特定按鈕:

您會注意到展開 + 按鈕有一個onclick屬性,該屬性會觸發一個帶有各種 arguments 的 function 調用。 可以用requests復制它; 但是,我將重點關注您可以通過該屬性定位特定 + 按鈕的事實,其值基於傳遞給 function 的唯一 arguments,使用css 屬性包含運算符。

您可以在此處看到 function 調用的ExpensesQuarters arguments 與要擴展的表格部分一致:

在此處輸入圖像描述

我的目標是 onclick 屬性的參數值,escaping '因為我用外部包裝'。 我正在尋找包含這些值的 onclick。


展開全部 +

To find all + buttons, rather than target a specific one, change the method call to find_elements_by_css_selector and change the css selector to instead look at the function rather than the arguments ie [onclick*="Company.showSchedule"] .

您將需要循環匹配的 webElements 集合(列表)以單擊循環中的各個元素。


派:

from selenium import webdriver

d = webdriver.Chrome()
d.get('https://www.screener.in/company/GRANULES/consolidated/')
d.find_element_by_css_selector('[onclick*="\'Expenses\', \'quarters\'"]').click()

暫無
暫無

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

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