首页 > 解决方案 > 如何使用 requests-html 查找亚马逊产品名称?

问题描述

我一直在尝试用 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字典产品中的方法吗?

标签: pythonpython-requests-html

解决方案


推荐阅读