私はPython 3.6とbeautfulsoup4を使用しています
最初のノードがあります:
title = self.html.find(id=(lists[1][selectionindex]))
これはどれもではなく、このノードは赤で強調表示されています:
青色のノード(任意のdiv/pノード)のリストを取得できますが、h1/2/3ノードに到達すると停止する方法
回答 2 件
BeautifulSoupの
find_all
を使用できます 特定のHTMLタグのすべてのインスタンスを取得する関数。import requests, lxml from bs4 import BeautifulSoup r = requests.get('https://www.google.co.uk') soup = BeautifulSoup(r.content, "lxml") f = soup.find_all("p") for p in f: print p
関連した質問
- 美しいスープを使用した複雑な構造のHTMLの解析
- BeautifulSoupで「a」要素からテキストを抽出する方法は?
- 画像付きのテーブルをWebスクレイプし、PythonでExcelにエクスポートする方法は?
- BeautifulSoupを使用してeComWebサイトからを取得するにはどうすればよいですか?
- Seleniumを使用して債券の最後の終値をスクレイピングするときのXpathのエラー
- Pythonはスクレイプイメージを要求し、「data:image /」の形式でsrcを返します
- Pythonを使用してWebサイトをスクレイプできません
- Python:HTMLコードのネストされたdivから情報を取得する
- BeautifulSoupを使用してWebページから特定のリンクをスクレイピングする
- ウェブサイトのすべてのページからデータを取得してファイルに書き込むにはどうすればよいですか?
私はあなたが最初の
<h3>
を見つけることができると仮定していますid
を使用したタグ (コードに示されているように)。次のコードは、すべての<p>
を取得します および<div>
<h3>
の後のタグ タグを付け、<h1>
のいずれかが検出されると停止します 、<h2>
または<h3>
鬼ごっこ。の
find_all_next()
メソッドは、現在のタグの後にあるすべてのタグのリストを返します。<p>
だけでなく、2つのタグの間のすべてのタグが必要な場合 および<div>
タグ、これを使用:または、
itertools.takewhile
を使用して同じ :