Вопрос по использованию библиотеки BeautifulSoup для разбора данных с Amazon - PullRequest
0 голосов
/ 09 ноября 2019

Я пытался проанализировать данные из Amazon через следующую страницу: https://www.amazon.com/s?k=Apple&rh=n%3A2407749011 с помощью BeautifulSoup. Мне удалось проанализировать название продукта, цену, количество комментариев, но я не могу найти название продукта, размер дисплея, емкость, цвет в выводе, используя следующий код:

from bs4 import BeautifulSoup
from urllib.request import Request, urlopen

site = 'https://www.amazon.com/s?k=Apple&rh=n%3A2407749011'
hdr = {'User-Agent': 'Chrome/47.0.2526.83'}
req = Request(site,headers=hdr)
page = urlopen(req)
soup = BeautifulSoup(page)
soup

Я виделследующий блок тегов в исходном коде, но я не могу использовать какие-либо функции .find и find_all для их анализа.

<div class="s-product-specs-view">
<div class="sg-row">
<div class="sg-col-8-of-28 sg-col-0-of-12 sg-col-0-of-16 sg-col-8-of-32 sg-col sg-col-8-of-20 sg-col-8-of-36 sg-col-8-of-24"><div class="sg-col-inner">

    <div class="sg-row">

            <div class="sg-col-2-of-36 sg-col-2-of-28 sg-col-2-of-16 sg-col sg-col-2-of-32 sg-col-2-of-24 sg-col-2-of-12 sg-col-2-of-20"><div class="sg-col-inner">
                <span dir="auto">Brand</span><br/><span class="a-text-bold" dir="auto">Apple</span>
            </div></div>

            <div class="sg-col-2-of-36 sg-col-2-of-28 sg-col-2-of-16 sg-col sg-col-2-of-32 sg-col-2-of-24 sg-col-2-of-12 sg-col-2-of-20"><div class="sg-col-inner">
                <span dir="auto">Display Size</span><br/><span class="a-text-bold" dir="auto">4.7 inches</span>
            </div></div>

            <div class="sg-col-2-of-36 sg-col-2-of-28 sg-col-2-of-16 sg-col sg-col-2-of-32 sg-col-2-of-24 sg-col-2-of-12 sg-col-2-of-20"><div class="sg-col-inner">
                <span dir="auto">Capacity</span><br/><span class="a-text-bold" dir="auto">32 GB</span>
            </div></div>

            <div class="sg-col-2-of-36 sg-col-2-of-28 sg-col-2-of-16 sg-col sg-col-2-of-32 sg-col-2-of-24 sg-col-2-of-12 sg-col-2-of-20"><div class="sg-col-inner">
                <span dir="auto">Color</span><br/><span class="a-text-bold" dir="auto">Space Gray</span>
            </div></div>

    </div>

</div></div>
</div>
</div>

Мне было интересно, пропустил ли я что-нибудь в коде. Спасибо всем за помощь заранее.

1 Ответ

0 голосов
/ 09 ноября 2019

Вы должны определить, какой тип парсера вы будете использовать в BeautifulSoup ().

Изменить soup = BeautifulSoup(page) с помощью soup = BeautifulSoup(page,"html.parser")

это решит вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...