看來你想要的,而不是用一些元素交互只有文字,一個解決方案是使用BeautifulSoup
解析HTML的你,與selenium
獲得由JavaScript內置的代碼,你應該先把HTML內容與html = driver.page_source
,然後你可以這樣做:
html ='''
<div id="CompanyContainer">
<div id="EmpBasicInfo">
<div class="">
<div class="infoEntity"></div>
<div class="infoEntity">
<label>Industry</label>
<span class="value">Woodcliff</span>
</div>
<div class="infoEntity">
<label>Size</label>
<span class="value">501 to 1000 employees</span>
</div>
</div>
</div>
</div>
''' # Just a sample, since I don't have the actual page to interact with.
soup = BeautifulSoup(html, 'html.parser')
>>> soup.find("div", {"id":"EmpBasicInfo"}).findAll("div", {"class":"infoEntity"})[2].find("span").text
'501 to 1000 employees'
或者,當然了,避免特定的索引和尋找<label>Size</label>
,它應該是更具可讀性:
>>> [a.span.text for a in soup.findAll("div", {"class":"infoEntity"}) if (a.label and a.label.text == 'Size')]
['501 to 1000 employees']
使用selenium
你可以做:
>>> driver.find_element_by_xpath("//*[@id='EmpBasicInfo']/div[1]/div/div[3]/span").text
'501 to 1000 employees'
1.你期望得到什麼文字? 2.請將代碼發佈爲文字而不是圖片,它可以幫助每個想要幫助的人。 –
感謝您的及時迴應。我試圖從範圍內獲得「501到1000名員工」和「生物技術與製藥」 –
如果你知道你想要得到'尺寸'標籤後面的內容,那麼使用 bs4的'find()' –