PythonとBeautifulSoupを使用して特定のテーブルセル値を見つけ、行全体を出力しますか?

サムW。

BeautifulSoupでスクレイピングしているテーブルがあり、特定のセルに特定の文字列がある場合に行全体を印刷できるようにしようとしています。以下のコードはまったく何も出力しておらず、その理由がわかりません。forループがなく、データ変数を出力するだけの場合、大量の情報が返されるので、forループに問題があります。

問題は、「チェック」という単語がどこにあるのか、テーブルに何回表示されるのかわからないため、インデックスだけを見ることができないということです。PythonとBeautifulSoupを使用してテーブルを解析することを見てきましたが、特定の文字列ではなく、タグを探しているように見えます。私はこの情報を使って作業してみました:http//www.briancarpio.com/2012/12/02/website-scraping-with-python-and-beautiful-soup/、しかしそれはどのインデックスと話すかを正確に知っているので、ここでは役に立たなかった。

何か案は?

nextpage=logged_in.read() #let's read the page once we get logged in
soup=BeautifulSoup(nextpage, "lxml") #BeautifulSoup told me to do this
table = soup.findAll("table", {'class':'table2'}) #Find the table we want to work with
data = [[td.findChildren(text=True) for td in tr.findAll("td")] for tr in table] #Find the cells for each table row

for line in table: #if you see a line in the table
    if line.find('Check'): #and you find the specific string
        print line #print it 
print "Hey, this did run!" #debug statement
dstudeba

2つの考えられる問題があります。

1つ目(そして最も可能性が高い)は、タグと文字列を混同していることです。あなたのコードにはあなたが持っています

for line in table: #if you see a line in the table
    if line.find('Check'): #and you find the specific string
        print line #print it 

最初の行lineは、タグである示します次に、PythonではなくBeautifulSoupfindメソッドを使用しているため、実際には、文字列「Check」ではなく、という名前タグを探していますタグがないため、印刷行が実行されることはありません。CheckCheck

2番目のオプションはfind、文字列内の「Check」という単語の位置を返すpythonメソッドを実際に使用することですチェックはタグ内の唯一の文字列であるため<span style="color:green">Check</span>、Pythonfindは0を返し、したがってifステートメントはfalseになります。(これが起こっていることではないと思いますが、false0ではなく0を意味するように常に注意する必要があります

コードを次のように変更して実行します。

for line in table: #if you see a line in the table
    if line.get_text().find('Check') > -1 : #and you find the specific string
         print line #print it 

このコードはget_text()、タグから文字列を取得するためにa実行し、次にPython文字列findを実行して「check」が文字列に含まれているかどうかを確認します。そうでない場合は、-1を返します。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Beautifulsoupを使用してセルデータを検索し、特定のセル値が見つかった場合は行全体を印刷します

分類Dev

beautifulsoupを使用してテーブル内の特定のセルの値を見つけるにはどうすればよいですか

分類Dev

最大値を見つけて、Excelvbaを使用してテーブルからその見出しを返します

分類Dev

BeautifulSoupを使用して特定のテーブルが見つかりません

分類Dev

マクロを使用してWordのテーブルを検索し、セル内の特定の文字列を見つけてから、同じ行の別のセルにタイポグラフィを設定します

分類Dev

Excelテーブルはセル値を見つけてコピーします

分類Dev

テーブルをループして特定のIDを見つけます

分類Dev

列全体をループして値を見つけます

分類Dev

XPATHを使用して特定の要素を見つけ、その要素から先に進んでツリー内の次のテーブルを見つけます

分類Dev

Python BeautifulSoupを使用して、複数の同じ名前のテーブルを持つ特定のページからデータテーブルを抽出します

分類Dev

BeautifulSoupを使用してテーブル内のセルから値を抽出する

分類Dev

WHERE条件を使用して、テーブル内の文字列から特定の値を見つける方法は?

分類Dev

PythonでBeautifulSoupを使用してHTMLテーブルが見つかりません

分類Dev

dplyrの列名のベクトルを使用して、列全体の行の最大値を見つけます

分類Dev

BeautifulSoupを使用してテーブルから特定の値を選択する

分類Dev

テキストファイルで特定のパターンを見つけて、出力から除外しますか?

分類Dev

LINQ:Linqを使用して複数のテーブル列を結合し、子テーブルの値から集計された合計を見つけます

分類Dev

Pythonを使用して(URL上の)htmlテーブルから特定のセルのテキストを見つける方法は?

分類Dev

Pythonターミナルで出力をテーブルとして出力し、適切な見出しを付けて出力を.txtとして保存します

分類Dev

jQuery-テーブルの行で整数値を見つけて、行の最初の列に警告します

分類Dev

ほとんどのtdを持つテーブル行を見つけ、他のすべてのテーブル行に等しい#tdを追加します

分類Dev

列3の最小値と最大値を見つけて、行全体を印刷します

分類Dev

pandas pythonを使用して、特定の列が最大値を持つ出力として行全体を取得する

分類Dev

テーブル内で特定の値を見つけて、行と列の情報を抽出する方法は?

分類Dev

美しいスープを使用して、テーブルの行のセルから値を取得します

分類Dev

アイテム名を使用して最小値を見つけ、jqueryを使用してhtmlテーブルの低い値の背景色を変更します

分類Dev

forループを使用して配列内の最大値と最小値を見つけますか?

分類Dev

現在のテーブルと履歴テーブルから値が最後に変更された時刻を見つけようとしています

分類Dev

4つの特定のコーナーピクセルを見つけて、ワープパースペクティブで使用します

Related 関連記事

  1. 1

    Beautifulsoupを使用してセルデータを検索し、特定のセル値が見つかった場合は行全体を印刷します

  2. 2

    beautifulsoupを使用してテーブル内の特定のセルの値を見つけるにはどうすればよいですか

  3. 3

    最大値を見つけて、Excelvbaを使用してテーブルからその見出しを返します

  4. 4

    BeautifulSoupを使用して特定のテーブルが見つかりません

  5. 5

    マクロを使用してWordのテーブルを検索し、セル内の特定の文字列を見つけてから、同じ行の別のセルにタイポグラフィを設定します

  6. 6

    Excelテーブルはセル値を見つけてコピーします

  7. 7

    テーブルをループして特定のIDを見つけます

  8. 8

    列全体をループして値を見つけます

  9. 9

    XPATHを使用して特定の要素を見つけ、その要素から先に進んでツリー内の次のテーブルを見つけます

  10. 10

    Python BeautifulSoupを使用して、複数の同じ名前のテーブルを持つ特定のページからデータテーブルを抽出します

  11. 11

    BeautifulSoupを使用してテーブル内のセルから値を抽出する

  12. 12

    WHERE条件を使用して、テーブル内の文字列から特定の値を見つける方法は?

  13. 13

    PythonでBeautifulSoupを使用してHTMLテーブルが見つかりません

  14. 14

    dplyrの列名のベクトルを使用して、列全体の行の最大値を見つけます

  15. 15

    BeautifulSoupを使用してテーブルから特定の値を選択する

  16. 16

    テキストファイルで特定のパターンを見つけて、出力から除外しますか?

  17. 17

    LINQ:Linqを使用して複数のテーブル列を結合し、子テーブルの値から集計された合計を見つけます

  18. 18

    Pythonを使用して(URL上の)htmlテーブルから特定のセルのテキストを見つける方法は?

  19. 19

    Pythonターミナルで出力をテーブルとして出力し、適切な見出しを付けて出力を.txtとして保存します

  20. 20

    jQuery-テーブルの行で整数値を見つけて、行の最初の列に警告します

  21. 21

    ほとんどのtdを持つテーブル行を見つけ、他のすべてのテーブル行に等しい#tdを追加します

  22. 22

    列3の最小値と最大値を見つけて、行全体を印刷します

  23. 23

    pandas pythonを使用して、特定の列が最大値を持つ出力として行全体を取得する

  24. 24

    テーブル内で特定の値を見つけて、行と列の情報を抽出する方法は?

  25. 25

    美しいスープを使用して、テーブルの行のセルから値を取得します

  26. 26

    アイテム名を使用して最小値を見つけ、jqueryを使用してhtmlテーブルの低い値の背景色を変更します

  27. 27

    forループを使用して配列内の最大値と最小値を見つけますか?

  28. 28

    現在のテーブルと履歴テーブルから値が最後に変更された時刻を見つけようとしています

  29. 29

    4つの特定のコーナーピクセルを見つけて、ワープパースペクティブで使用します

ホットタグ

アーカイブ