[英]Scaper of ASIN number from an Amazon page using python
我會從亞馬遜頁面上刮掉所有的asin數字。 我需要該列表來對每個獲得的asin進行抓取。
我嘗試使用此代碼,但只能讀取3個asin數字作為結果。
我想我做錯了正則表達式
這是我的代碼:
import requests
###Amazon URL
urls = ['https://www.amazon.it/gp/bestsellers/apparel/', 'https://www.amazon.it/gp/bestsellers/electronics/', 'https://www.amazon.it/gp/bestsellers/books/']
htmltexts = []
for url in urls:
req = requests.get(url).content
htmltexts.append(req)
import re
for htmltext in htmltexts:
text = str(htmltext)
pattern = re.compile(r"/.*/dp/(.*?)\"")
s = re.findall(pattern, text)
print (s)
我希望每頁至少有20個結果。 該程序已構建了3個亞馬遜頁面。 所以我至少需要60個結果
RegEx的問題在於/.*/dp/(.*?)\\"
中的/.*/
部分意味着它可以匹配/
和/
之間的任何符號集。在您的情況下,它可以匹配其中的大多數符號響應消息。
嘗試以下RegEx: /[^/]+/dp/([^"]+)
,請參見下面的代碼。它從每個頁面獲取50個ASIN:
import requests
import re
urls = [
'https://www.amazon.it/gp/bestsellers/apparel/',
'https://www.amazon.it/gp/bestsellers/electronics/',
'https://www.amazon.it/gp/bestsellers/books/'
]
for url in urls:
content = requests.get(url).content
decoded_content = content.decode()
asins = set(re.findall(r'/[^/]+/dp/([^"?]+)', decoded_content))
print(asins)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.