Beautifulsoup:findAll再帰が機能しない

パーサー

Wired.comから記事を取得しようとしています。一般的に、彼らの記事の内容は次のようになります。

<article itemprop="articleBody">
   <p>Some text</p>
   <p>Next text</p>
   <p>...</p>
   <p>...</p>
</article>

またはこのように:

<article itemprop="articleBody">
    <div class="listicle-captions marg-t...">
        <p></p>

    </div>

 </article>

したがって、ページがタイプ1の場合は、<p><h>が抽出され、ページがタイプ2の場合は、別のことを行います。あれば、<p><h>の直接の子孫である<article>、それのタイプ1.私は、次のコードを試してみました、それが探し<p><h>、タグ名を出力します。問題は、recursive="False"タイプ2ページでテストすると、タグが見つかるはずなのに、タグが見つかるので、役に立たないようです(NonTypeオブジェクトを取得することを検討しました)。

import urllib.request
from bs4 import BeautifulSoup
import datetime
import html
import sys

articleUrl="https://www.wired.com/2016/07/greatest-feats-inventions-100-years-boeing/"

soupArticle=BeautifulSoup(urllib.request.urlopen(articleUrl), "html.parser")

articleBody=soupArticle.find("article", {"itemprop":"articleBody"})
articleContentTags=articleBody.findAll(["h1", "h2","h3", "p"], recursive="False")

for tag in articleContentTags:
    print(tag.name)
    print(tag.parent.encode("utf-8"))

なぜそれが機能しないのですか?

PSまた、と一般的な使用findAllfindChildrenこの特定の場合の違いはありますか?これらの2つは私には同じように見えます。

パドレイクカニンガム

文字列リテラル"False"ブール値 を使用するのと同じではありません。False実際に渡す必要がありますrecursive=False

articleBody.find_all(["h1", "h2","h3", "p"], recursive=False)

空でない文字列はすべて真の値と見なされます。渡すことができる唯一の文字列は空の文字列、つまりrecursive=""です。

In [17]: bool("False")
Out[17]: True

In [18]: bool("foo")
Out[18]: True

In [19]: bool("")
Out[19]: False

ただし、実際のブール値 を使用することに固執します。また、find_all not findを呼び出しているため、Noneではなく、で返さFalseれる空のリスト/ ResultSetを取得しますrecursive=False

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

再帰検索が機能しない

分類Dev

再帰関数が機能しない

分類Dev

findAll-beautifulsoup-pythonが正しく機能しない

分類Dev

再帰的範囲機能が機能しない

分類Dev

リストの積の再帰機能が機能しない

分類Dev

再帰的な関数従属性が機能しない

分類Dev

再帰が機能しないのはなぜですか?

分類Dev

再帰的な `setTimeout`が期待どおりに機能しない

分類Dev

再帰grepが機能しないのはなぜですか?

分類Dev

再帰が機能しないのはなぜですか?

分類Dev

Railsで再帰的な方法が機能しない

分類Dev

再帰的なOCaml関数が機能しない

分類Dev

if句が再帰関数で機能していない

分類Dev

再帰的メソッドが正しく機能しない

分類Dev

Pythonの再帰的マージソートが機能しない

分類Dev

再帰関数のjsが機能しない

分類Dev

カーソルが機能しないSQLServer関数の再帰

分類Dev

Object.assign再帰が期待どおりに機能しない

分類Dev

再帰構造のJsonスキーマが機能しない

分類Dev

C ++のループ内で再帰が機能しない

分類Dev

C-二分探索木で再帰が機能しない

分類Dev

Javascript再帰関数が機能しない

分類Dev

VBA再帰関数が機能しない

分類Dev

再帰が期待どおりに機能しない

分類Dev

再帰スクリプトが機能しない

分類Dev

再帰スクリプトが機能しない

分類Dev

JavaScript再帰ノード等価関数が機能しない

分類Dev

再帰が期待どおりに機能しない

分類Dev

ls -R(再帰)が正規表現で機能しない理由

Related 関連記事

ホットタグ

アーカイブ