これまでの私のコードは次のとおりです。
from bs4 import BeautifulSoup
soup = BeautifulSoup(website_url,'lxml')
my_table = soup.find('table',{'class':'wikitable sortable'})
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = 'https://en.wikipedia.org/wiki/2019%E2%80%9320_Wuhan_coronavirus_outbreak'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
page_soup.tbody.tr?
このテーブル要素をターゲットにしようとしていますが、一意ではありません。「<tdstyle ... <b」と呼ばれるこのネストされた要素をキャプチャするにはどうすればよいですか?
page_soup.h1を実行してすべてのh1タグを取得することはできますが、ここには繰り返しタグが多数あるため、いくつかのヘルプを使用できます。私はUTFSEを行いましたが、まだ混乱しています。お時間をいただきありがとうございます。
私があなたの質問を正しく理解しているなら、あなたはこのようなことを試すことができます:
url = 'https://en.wikipedia.org/wiki/2019%E2%80%9320_Wuhan_coronavirus_outbreak'
import requests
from bs4 import BeautifulSoup as bs
resp = requests.get(url)
soup = bs(resp.text,'lxml')
tabs = soup.find('table',{'class':'wikitable sortable'})
tot = tabs.find_all('tr',{'style':'vertical-align:top'})
for t in tot:
rows = t.find_all('td',style=None)
for r in rows:
if r.text.strip() == "Total":
print(m.nextSibling.text)
その背後にある考え方は、ターゲット番号2903
が(削除された)テキストのある行の後にあるということですTotal
。単語Total
は属性のtd
ないタグに含まれていstyle
ます。そのタグを見つけ、ターゲット番号はその直接の兄弟のテキストにあります。
出力:
2,903
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加