使用python3和bs4我在選擇兩個不同div下的兩個跨度值時遇到問題。python 3 bs4如何選擇某些div下的跨度值
我想實現以下目標。
1.)在lastPriceChg div下選擇「chg chgUp」值。注意:這也可能是「chg chgDown」。即
<div class="lastPriceChg"><span class="price">0.023</span><span class="chg chgUp">0.0001 (0.44%)</span></div>
2.)有多個「panel」div,但我想要volumeFormatted值。即
<div class="panel">
<strong glossaryid="volume">Volume</strong>
<span class="value" val="volumeFormatted">3,851,529</span>
<strong class="under">Dividend</strong>
<span class="value"><span formatcall="toPrice" val="dividend">N/A</span></span>
</div>
什麼是真正奇怪的是,如果我粘貼HTML網頁到它的工作原理html_doc ...
這裏是我的非工作電流代碼:
url = ('https://www.otcmarkets.com/stock/VDRM/quote')
page = urllib.request.urlopen(url).read()
soup = BeautifulSoup(page, "lxml")
for item in soup.findAll('span', attrs={'class': 'value'}):
print(item.text.strip()
樣品出來的只是體積:
$ python scraper.py
Get Change
-
-
下不工作:
html_doc = """
<div class="panel">
<strong glossaryid="volume">Volume</strong>
<span class="value" val="volumeFormatted">3,105,009</span>
<strong class="under">Dividend</strong>
<span class="value"><span formatcall="toPrice" val="dividend">N/A</span></span>
</div>
"""
soup = BeautifulSoup(page, "lxml")
for item in soup.findAll('span', attrs={'class': 'value'}):
print(item.text.strip()
樣品出來只是量:
$ python scraper.py
Get Change
3,105,009
N/A
那麼,爲什麼這不是從網站實際讀取時的工作?
編輯:下面是從跨類檢查屏幕截圖我要找: inpect screen shot of spans
當我檢查您提供的網址中的HTML時,我無法找到任何這些字符串:'lastPriceChg','chgUp','chgDown'。你確信你的問題是正確指定的嗎? –
是@BillBell。您是否已經點擊主頁或使用直接鏈接獲取股票代碼,如otcmarkets.com/stock/VDRM/quote?這些值在quoteData div類下。我也會發佈一個屏幕截圖。 – Micmizer
我在你的'非工作當前代碼'中使用了你的Python名稱'url'中的地址。 –