私はいくつかのHTLMLを持っています。これは、ほとんどクラス識別子がないので、私はBeautifulSoupをラッチする必要はほとんどありません。それは一種の次のようになります。あなたが美しいスープの兄弟である場合は、findAll
<h3>I am an important section of the list</h3>
<ul>
<li><a href="commonStuff/newThing1">Important text in here</a></li>
<li><a href="commonStuff/newThing2">Differentmportant text in here</a></li>
...
</ul>
<h3>I am another section of the list but I am not important</h3>
<ul>
<li><a href="I look like I could be important">Cool looking info in here></li>
<li><a href="I look like I could be important">Cool looking info in here></li>
</ul>
は私だけで-間、私は気にh3
タグa
要素を気に。当然のことながら、私は現在、これをやっている方法は次のとおりです。
sections = part.select('h3')
for section in sections:
if "I am an important section of the list" in section:
問題はその時点で私はヘッダータグの後のものを探していますので、私はその後何をするか知らないです。私がそれをするのを見た唯一の方法は、何らかの子供を育てることです。だから私はこれをやっている:この
- 程度の悪い二つのものがあります
for body in section.next_siblings:
だけ今までそれ次々と並べがあるはずです。私は兄弟姉妹は、私はあなたがhrefのリンクになってお勧めしますどのように以前の
を解析して、元のHTMLスープと同じではありませんので、私はfor links in body.find_all("a"):
を行うカント
<h3>
タグの直下にある場合のみ表示されます。 こちらのトラブルは、<h3>
タグの直後に内容を欲しいと思われるようです。私は何とかそのようなタグ間の内容でドキュメントを分割することができればうれしいです。 next_sibling
について
res = []
sections = part.find_all('h3',
string=lambda s:'I am an important section of the list' in s)
for section in sections:
for item in section.next_sibling.next_sibling.find_all('a'):
res.append(item.get('href'))
print(res)
>>>['commonStuff/newThing1', 'commonStuff/newThing2']
説明:
あなたのhtmlソースが<h3>
後に何の改行が含まれていない場合、あなたが必要があると思い
パーフェクト! Item.textは、括弧内の項目を取得して、hrefリンクをどのように取得できますか? –
'アイテム。get( 'href') 'はすべきである – PRMoureu
next_siblingを2回呼び出すとfind_all()が定義される理由を説明できますか?何らかの理由で、あなたが一度それをしたらそれは定義されていません。私はこれがあなたの「複数の」用語と関係していると思います –