计算亚马逊产品详细信息页面上的图像

时间:2017-04-06 14:37:26

标签: python selenium-webdriver amazon

我是Python的新编码。所以请耐心等待我试图找到产品在亚马逊上的产品图片数量。 我似乎无法正常工作? 2.有没有办法插入一个ASINS列表,以便他们可以打印出所有数字? 谢谢!



import bs4
import webbrowser
import requests
File = requests.get('https://www.amazon.com/dp/B01MRXQPJ5')
soup = bs4.BeautifulSoup(File.text, 'html.parser' )
elems = soup.select('ul.a-unordered-list a-nostyle a-button-list a-vertical a-spacing-top-micro > li ')




1 个答案:

答案 0 :(得分:0)

由于亚马逊使用javascript渲染页面,因此内容是在客户端而不是服务器端生成的。

当您使用请求时,您将获得服务器端的内容。要获取客户端生成的内容,您必须使用selenium或dryscrape,例如。

这是一个工作代码,它将计算产品ID列表的项目数。

<强>代码:

Group {
    fileTagsFilter: ["someruleoutput"]
    qbs.install: true
    qbs.installDir: "xyz"
}

<强>输出:

import selenium.webdriver as webdriver
import lxml.html as html
import lxml.html.clean as clean

urls = ['B017TSPK5K', 'B00B96KLCQ', 'B01MZ9E6CG']

browser = webdriver.Chrome()

for url in urls:
    amazon_url = "https://www.amazon.com/dp/{}".format(url)

    browser.get(amazon_url)
    content = browser.page_source

    cleaner = clean.Cleaner()
    content = cleaner.clean_html(content)
    doc = html.fromstring(content)
    soup = BeautifulSoup(content, 'html.parser')

    soup_li = soup.find_all('li', {'class':'a-spacing-small item a-declarative'})

    print("Product ID: {} has {} images.".format(url, len(soup_li)))

browser.close()