使用python从Amazon页面创建ASIN编号的Scaper

使用python从Amazon页面创建ASIN编号的Scaper,python,url,web-scraping,amazon,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.amaz

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

正则表达式的问题是,
/.*/./dp/(.*)\”
中的
/././
部分意味着它可以匹配
/
/
之间的任何一组符号。在您的例子中,它匹配响应消息中的大多数符号

尝试以下正则表达式:
/[^/]+/dp/([^“]+)
,请参阅下面的代码。它从每页获得50个ASIN:

导入请求
进口稀土
URL=[
'https://www.amazon.it/gp/bestsellers/apparel/',
'https://www.amazon.it/gp/bestsellers/electronics/',
'https://www.amazon.it/gp/bestsellers/books/'
]
对于url中的url:
content=requests.get(url.content)
decoded_content=content.decode()
asins=set(关于findall(r'/[^/]+/dp/([^”?]+)',解码内容))
印刷(亚洲)