使用python从亚马逊页面中获取ASIN号

时间:2019-07-28 19:34:08

标签: python url web-scraping amazon

我会从亚马逊页面抓取所有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个结果

1 个答案:

答案 0 :(得分:1)

RegEx的问题在于dp[A]中的infinity部分意味着它可以匹配/.*//.*/dp/(.*?)\"之间的任何符号集。就您而言,它与响应消息中的大多数符号匹配。

请尝试以下RegEx:/,请参见下面的代码。它从每个页面获取50个ASIN:

/