Вопрос:

Подсчет изображений на странице сведений о продукте Amazon Python

python selenium-webdriver amazon

229 просмотра

1 ответ

3 Репутация автора

Я новичок в кодировании с Python. Поэтому, пожалуйста, потерпите меня. Я пытаюсь найти количество изображений товара, которое есть на Амазонке. 1. Я не могу заставить его работать правильно? 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 ')

Автор: John Kelly Источник Размещён: 06.04.2017 02:37

Ответы (1)


0 плюса

3792 Репутация автора

Поскольку Amazon отображает свою страницу с использованием JavaScript, контент генерируется на стороне клиента, а не на стороне сервера.

Когда вы используете запросы, вы получаете контент на стороне сервера. Чтобы получить контент, сгенерированный на стороне клиента, вы должны использовать, например, selenium или dryscrape.

Вот рабочий код, который будет подсчитывать количество элементов в списке идентификаторов продуктов.

Код:

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()

Выход:

'Product ID: B017TSPK5K has 2 images.'
'Product ID: B00B96KLCQ has 5 images.'
'Product ID: B01MZ9E6CG has 3 images.'
Автор: dot.Py Размещён: 06.04.2017 03:03
Вопросы из категории :
32x32