[ad_1]
私は、beautifulsoupモジュールを使用して、pythonでラップトップ検索ページno 1でwebscraping amazon.inを実行しようとしました。 製品の名前と賞品のリストを取得しようとすると、必要なリストではなく、値が 1 つしか表示されません。
ここにアマゾンのウェブサイトのリンクがあります: – [DELETED]
私が試したこと:
これが私のコードです
from bs4 import BeautifulSoup import requests url= "https://www.amazon.in/s?k=laptop&crid=11C0N6A7MKTOH&sprefix=laptop%2Caps%2C1151&ref=nb_sb_noss_1" page = requests.get(url) soup = BeautifulSoup(page.content, 'html.parser') lists = soup.find_all('div',class_="s-main-slot s-result-list s-search-results sg-row") print(lists) for list in lists: Name = list.find('span',class_="a-size-medium a-color-base a-text-normal").text.replace('\n', '') Price = list.find('span', class_="a-price-whole").text.replace('\n', '') print(Name) print(Price)
ここに私の出力があります
HP 15s-Ryzen 3 3250U 8GB SDRAM/256GB SSD 15.6inch(39.6cm) HD, Micro-Edge Laptop/AMD Radeon Graphics/Dual Speakers/Win 11 Home/MS Office/Fast Charge/Jet Black/1.69Kg, 15s-ey1508AU 29,999
解決策 2
引用:Pythonlists = soup.find_all('div',class_="s-main-slot s-result-list s-search-results sg-row")
返された HTML を見てください – 1 つしかありません <div class="s-main-slot ...">
エレメント。
コードはその 1 つの要素をループ処理し、リスト全体から名と価格のスパンを見つけます。
コードを変更してすべてを検索する <div class="s-result-item ...">
代わりにアイテムを使用すると、運が良くなる可能性があります。
Python
lists = soup.select("div.s-result-item")
注意: 使用する select
それよりも find_all
、完全に指定できないため class
要素ごとに変化する属性。
または、 data-component-type
検索結果アイテムを見つけるための属性:
Python
lists = soup.select('div[data-component-type="s-search-result"]')
解決策 1
引用:それを解決する方法はありますか
Amazon API を使用してみることができます。 販売パートナー API[^]
[ad_2]
コメント