如何使用requestshtml查找Amazon产品名称?

2024-04-26 00:30:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试用python编写一个程序,可以在第一页返回所有产品名称的列表。我有一个函数,可以根据您要搜索的内容获取URL:

def get_url(search_term):
    template = 'https://www.amazon.com/s?k={}&ref=nb_sb_noss_1'
    search_term = search_term.replace(' ', '+')
    url = template.format(search_term)
    print(url)
    return URL

然后我将URL传递到另一个函数中,这里是我需要帮助的地方。现在,我检索标题和评论数量的功能如下:

def getInfo(url):
    r = HTMLSession().get(url)
    r.html.render()
    product = {
        'title': r.html.find('.a-size-medium' '.a-color-base' '.a-text-normal', first=True).text,
        'reviews': r.html.find('.a-size-base', first=True).text
    }
    print(product)

但是,r.html.find部分没有获得我需要的信息,它要么返回[],要么如果我添加first=True,则返回None。我尝试了不同的方法,比如使用XPath和选择器。这些似乎都不起作用。有人能帮助找到一种方法,使用html.find方法查找所有产品名称,并将它们保存在产品字典中的title中吗


Tags: 方法函数texttrueurlsearchgetdef