簡體   English   中英

使用python從亞馬遜頁面中獲取ASIN號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM