3 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
你甚至沒(méi)有聲明所有路徑。Octagonal 在哪個(gè)類(lèi)的 div 中,client-components-ValueChange-shape__Octagon所以搜索這個(gè) div。
x = browser.find_elements_by_css_selector("div[class='client-components-ValueChange-shape__Octagon']") ## Declare which class
for all in x:
print all.text
輸出 :
6

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以嘗試使用此 css 選擇器[class$='shape__Octagon']來(lái)定位內(nèi)容。如果我去pyppeteer,我會(huì)做以下事情:
import asyncio
from pyppeteer import launch
async def get_content(url):
browser = await launch({"headless":True})
[page] = await browser.pages()
await page.goto(url)
await page.waitForSelector("[class$='shape__Octagon']")
value = await page.querySelectorEval("[class$='shape__Octagon']","e => e.innerText")
return value
if __name__ == "__main__":
url = "https://www.tipranks.com/stocks/sui/stock-analysis"
loop = asyncio.get_event_loop()
result = loop.run_until_complete(get_content(url))
print(result.strip())
輸出:
6

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
您在這里似乎有兩個(gè)問(wèn)題:
對(duì)于 xpath,我剛剛做了:
xpath = '//div[@class="client-components-ValueChange-shape__Octagon"]'
然后做:
打?。ㄔ亍N谋荆?/p>
它得到你想要的價(jià)值。但是,您的代碼實(shí)際上并沒(méi)有等到瀏覽器完成加載頁(yè)面后才執(zhí)行 xpath。對(duì)我來(lái)說(shuō),使用 Firefox,我只有大約 40% 的時(shí)間以這種方式獲得價(jià)值。Selenium 有很多方法可以處理這個(gè)問(wèn)題,最簡(jiǎn)單的可能是在 browser.get 和 xpath 語(yǔ)句之間休眠幾秒鐘。
您似乎正在設(shè)置 Firefox,但隨后使用 Phantom。我沒(méi)有在 Phantom 上嘗試過(guò),Phantom 可能不需要睡眠行為。
添加回答
舉報(bào)