bs4 を使用してタグ属性の値を取得します

ボリス

Python3bs4使用して、amazon検索した製品の詳細を取得しています。私のコードは次のとおりです。

 from bs4 import BeautifulSoup as BS 
 import requests

 html = requests.get('http://www.amazon.in/s/ref=nb_sb_noss_2?url=search-
 alias%3Daps&field-keywords=hp+monitors')

 soup = BS(html.text , 'lxml')
 #print(soup.prettify())

 for i in soup.find_all('li') :
    print(i.get('id'))
    h2_tag = i.h2
    print(h2_tag.get('data-attribute'))
    print("_____")

このコードでは、h2タグのdata-attribute属性の値を取得していません一方、liタグのid属性の値が出てきています。誰かが私がどこで間違っているのか教えてもらえますか。

スクラップするhtml

トラクジョンソン

ここで言ういくつかのこと:

  1. を使用する代わりにhtml.textここで推奨される 方法で使用してくださいhtml.content

  2. なぜlxmlここで使うのhtml.parser大丈夫なはずです。

  3. data-attributeタグを使用する必要はありません:を使用して h2 からテキストを取得できますh2.text

製品タイトルを収集するより簡単な方法<h2>は、s-inlineクラス (製品タイトル)を持つすべてを直接反復することです。

from bs4 import BeautifulSoup
import requests

html = requests.get('http://www.amazon.in/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=hp+monitors')
soup = BeautifulSoup(html.content , 'html.parser')

for h2 in soup.find_all('h2', class_='s-inline'):
    print(h2.text)

出力

HP 24ES 23.8-HP 24ES 23.8-inch THINNEST LED Monitor (Black)LED Monitor (Black)
HP 22es Display 54.6 cm, 21.5 Inch THINNEST IPS LED Backlit Monitor
HP 22KD 21.5-inch FULL HD LED Backlit Monitor (Black
HP 19KA 18.5-inch LED Backlit Monitor (Black)
HP 27es 27 Inches Display IPS LED Backlit Monitor (Full HD)
HP 21KD 20.7-inch FULL HD LED Backlit Monitor (Black)
LG 24MP88HV-S 24"IPS Slim LCD Monitor
Dell S Series S2415H 24-Inch Screen Full HD HDMI LED Monitor
Dell E1916HV 18.5-inch LED Monitor (Black)
HP 20KD 19.5-inch LED Backlit Monitor (Black)
Dell S2216H 21.5-Inch Full HD LED Monitor
HP V222 21.5" LED Widescreen Monitor (M1T37AA Black)
AlexVyan®-Genuine Accessory with 1 year warranty:= (38.1CM) 15 Inch LCD Monitor for HP, Dell, Lenovo, Pc Desktop Computer Only (Black)
Compaq B191 18.5-inch LED Backlit Monitor (Black)
HP 20WD 19.45-Inch LED Backlit Monitor
HP Compaq F191 G9F92AT 18.5-inch Monitor

また、インライン コードに太字を使用する代わりに、次のようなバッククォートを使用します。

`codecode` は次のようにレンダリングされます codecode


編集:

ここでsoup.find_all('h2')は、ページからすべての h2 タグを取得しますが、amazon ページには製品以外の要素の h2 タグもあります。すべての製品にs-inlineクラスがあることに気付いたのでsoup.find_all('h2', class_='s-inline")、製品から h2 タグのみを取得します。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Python // BS4 //タグ

分類Dev

BS4を使用して値を取得する

分類Dev

bs4を使用してpタグのテキストを取得する方法

分類Dev

BS4はXMLタグ変数を取得します

分類Dev

bs4を使用したPythonの解析

分類Dev

bs4を使用したHTML解析

分類Dev

bs4を使用してHTMLから特定の値を抽出します

分類Dev

bs4で要素間のテキストを取得します

分類Dev

BS4を使用してリストから値を取得する

分類Dev

bs4は、指定されたタグのすべての属性で単語を検索します

分類Dev

多属性クラスbs4のすべてのタグを検索します

分類Dev

bs4は最初の15個の値のみを取得します

分類Dev

BS4を使用してHTML本文の特定の部分を取得する方法

分類Dev

BS4で値ではなく属性名を取得する

分類Dev

BS4 を使用して <td> タグを反復する方法は?

分類Dev

Bs4とPythonの問題

分類Dev

bs4の非常に奇妙な動作

分類Dev

bs4でタグの外側のテキストを削除します

分類Dev

BS4を使用して映画の詳細をこすります

分類Dev

bs4を使用したdivデータのPythonhtml解析

分類Dev

bs4でクラス内のタグを選択します

分類Dev

BS4は、必要なHTMLタグの代わりに[]を返します

分類Dev

Pythonとbs4を使用してURL内のフレーズの数を取得します

分類Dev

BS4を使用してリスト内のアイテムを取得すると、AttributeErrorが発生します

分類Dev

国の天気を取得するには、bs4を配置します

分類Dev

Bs4は、htmlタグの一部のセットのみを取得します

分類Dev

BS4:タグ内のコメントは文字列属性と検索機能を壊します

分類Dev

動的class = "????"からデータを取得します bs4から

分類Dev

BS4を使用して非表示のHTML(ポップアップ)からデータを取得する

Related 関連記事

  1. 1

    Python // BS4 //タグ

  2. 2

    BS4を使用して値を取得する

  3. 3

    bs4を使用してpタグのテキストを取得する方法

  4. 4

    BS4はXMLタグ変数を取得します

  5. 5

    bs4を使用したPythonの解析

  6. 6

    bs4を使用したHTML解析

  7. 7

    bs4を使用してHTMLから特定の値を抽出します

  8. 8

    bs4で要素間のテキストを取得します

  9. 9

    BS4を使用してリストから値を取得する

  10. 10

    bs4は、指定されたタグのすべての属性で単語を検索します

  11. 11

    多属性クラスbs4のすべてのタグを検索します

  12. 12

    bs4は最初の15個の値のみを取得します

  13. 13

    BS4を使用してHTML本文の特定の部分を取得する方法

  14. 14

    BS4で値ではなく属性名を取得する

  15. 15

    BS4 を使用して <td> タグを反復する方法は?

  16. 16

    Bs4とPythonの問題

  17. 17

    bs4の非常に奇妙な動作

  18. 18

    bs4でタグの外側のテキストを削除します

  19. 19

    BS4を使用して映画の詳細をこすります

  20. 20

    bs4を使用したdivデータのPythonhtml解析

  21. 21

    bs4でクラス内のタグを選択します

  22. 22

    BS4は、必要なHTMLタグの代わりに[]を返します

  23. 23

    Pythonとbs4を使用してURL内のフレーズの数を取得します

  24. 24

    BS4を使用してリスト内のアイテムを取得すると、AttributeErrorが発生します

  25. 25

    国の天気を取得するには、bs4を配置します

  26. 26

    Bs4は、htmlタグの一部のセットのみを取得します

  27. 27

    BS4:タグ内のコメントは文字列属性と検索機能を壊します

  28. 28

    動的class = "????"からデータを取得します bs4から

  29. 29

    BS4を使用して非表示のHTML(ポップアップ)からデータを取得する

ホットタグ

アーカイブ