問題タブ [beautifulsoup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7954 参照

python - 簡単なBeautifulSoupの例である「helloworld」はどこにありますか?

BeautifulSoupを使ってとても簡単な交換をしたいと思います。ページ内のすべてのAタグにアクセスし、それらのhrefに「?foo」を追加するとします。誰かがそのような単純なことをする方法の例を投稿またはリンクできますか?

0 投票する
1 に答える
4235 参照

python - Beautiful Soupを使用して、埋め込まれたすべてのテキストを反復処理するにはどうすればよいですか?

HTMLから母音を削除したいとしましょう。

になります

これはBeautifulSoupの仕事だと思います。タグの間にあるテキストを選択して、このように操作するにはどうすればよいですか?

0 投票する
2 に答える
2123 参照

python - Beautiful Soupのextract()でエラーが発生しました

私はいくつかの画面スクレイピングソフトウェアに取り組んでいて、BeautifulSoupで問題が発生しました。私はpython2.4.3とBeautifulSoup3.0.7aを使用しています。

タグを削除する必要があり<hr>ますが、さまざまな属性を持つ可能性があるため、replace()を呼び出すだけではタグは削除されません。

次のhtmlが与えられます:

そして次のコード:

出力は次のとおりです。

抽出機能を誤解していますか、それともBeautiful Soupのバグですか?

0 投票する
3 に答える
95635 参照

python - BeautifulSoup を使用して、特定のテキストを含む HTML タグを見つける

次のテキスト パターンを含む HTML ドキュメントの要素を取得しようとしています: #\S{11}

したがって、前のものは次を使用して一致します。

結果は次のようになります。

一致するすべてのテキストを取得できます (上記の行を参照)。しかし、テキストの親要素を一致させたいので、ドキュメント ツリーを走査するための開始点としてそれを使用できます。この場合、テキストが一致するのではなく、すべての h2 要素が返されるようにします。

アイデア?

0 投票する
1 に答える
425 参照

python - ドキュメントの分析に基づいてテキストに変換する前に、BeautifulSoupでドキュメントをセグメント化できますか?

テキストに変換したいhtmlファイルがいくつかあります。私はBeautifulSoupをいじって、手順の使用方法を理解する上である程度の進歩を遂げ、htmlを送信してテキストを取り戻すことができます。

ただし、私のファイルには、テーブル構造を使用してフォーマットされたテキストがたくさんあります。たとえば、テーブルタグのセット内のtdタグにあるテキストの段落があるかもしれません

そして、テーブルの本体内にデータを持つ「クラシックテーブル」があります。

テーブルにアルゴリズムを適用し、ドキュメントをテキストに変換する前にテーブルがリッピングされるかどうかを決定するいくつかのルールを設定できるようにしたいと思います。

テーブルの特性を取得する方法を理解しました。たとえば、各テーブルの列数を取得するには、次のようにします。

そのため、numbColsを操作し、リスト内の各アイテムのlenとリスト内の各アイテムの値を使用して、テーブルの特性を分析し、保持または破棄するテーブルを特定できます。

この情報をBeautifulSoupで使用してテキストを取得するためのエレガントな方法を見ていません。私が得ようとしているのは、numbColsを分析し、特定のドキュメントの10個のテーブルのうち、テーブル2、4、6、および9を除外することを決定したとします。したがって、htmlドキュメントの一部にはそれら以外のすべてが含まれます。テーブル。どうすればそのようにスープをセグメント化できますか?

私が思いついた解決策は、最初にfinditerを使用してオープンテーブルタグとクローズテーブルタグのそれぞれの位置を特定し、スパンを取得してから、numbColsでスパンを圧縮することです。次に、このリストを使用して、文字列の断片を切り取って結合できます。これが完了したら、BeautifulSoupを使用してhtmlをテキストに変換できます。

私はBeautifulSoupでこれらすべてを行うことができるはずだと確信しています。既存の例への提案やリンクは素晴らしいでしょう。私のソースファイルは大きくなる可能性があり、何千もの処理が必要です。

答えはありませんでしたが、近づいています

0 投票する
4 に答える
281 参照

python - BeautifulSoup と REGEX の混合使用を実装するか、BS のみに依存するか

html ファイルのコレクションから抽出する必要があるデータがいくつかあります。データが div 要素、table 要素、または結合要素 (div タグは table の要素) に存在するかどうかはわかりません。3 つのケースすべてを見てきました。私のファイルは 2 MB の大きさで、私は何万ものそれらを持っています. これまでのところ、私はテーブルの td 要素を見て、孤独な div 要素を見てきました. 私には、ファイルがスープ化されるのに最も長い時間がかかり、30 秒以上かかるようです.正規表現を作成して探しているデータを見つけてから、次の閉じたタグテーブル、tr、td、または div を探して、テキストが含まれている構造のタイプを特定しました。一致する開始タグを見つけて、そのセクションを切り取り、HTML の開始タグと終了タグですべてラップする

したがって、次のような文字列を作成します。

次に、文字列をラップします

そして、BeautifulSoupを使用します

その後、BeautifulSoup のパワーにアクセスして、newString で必要なことを実行できます。

これは、テキストが見つかるまですべてのテーブルのすべてのセルの内容を最初にテストし、テキストが見つからない場合はすべての div の内容をテストするという代替手段よりもはるかに高速に実行されます。

ここで何か不足していますか?

0 投票する
2 に答える
3544 参照

python - 美しいスープとuTidy

utidyの結果を Beautiful Soup に渡したいと思います。

実行すると、次のエラーが発生します。

BeautifulSoup が文字列を要求しているのに対し、utildy は XML ドキュメントを返します。clean_html をキャストする方法はありますか? それとも、私はそれを間違っているので、別のアプローチを取る必要がありますか?

0 投票する
2 に答える
585 参照

python - Beautiful Soup で replaceWith を使用しながら動的にタグを指定する

以前、この質問をしたところ、この BeautifulSoup のサンプル コードが返ってきました。ローカルで相談した後、これを使用することにしました。

これに関する唯一の問題は、例にハードコーディングされたタグ値 (この場合は「モード」) があり、指定された「リンク」タグ内で任意のタグを指定できる必要があることです。単純な変数置換は機能していないようです。