Невозможно разобрать адрес, который содержит «.html # / что-то», используя bs4 в python3 - PullRequest
0 голосов
/ 08 марта 2019

Моя цель - разобрать изображения со второй страницы.Я использую bf4 и Python3 для этого.Пожалуйста, посмотрите на эти две страницы:

1) Только страница с изображениями для всех 4 цветов (я могу разобрать эту страницу);

2) И страница , содержащая изображения только для одного цвета (в этом примере цвет chrom).Мне нужно разобрать эту страницу.

Используя браузер, я вижу, что вторая страница отличается от первой.Но, используя bs4, я получил похожие результаты для первой и второй страницы, так как python не распознал этот «.html # / kolor-chrom» в адресе второй страницы.

Адрес первой страницы: «https://azzardo.com.pl/lampy-techniczne/2111-bross-1-tuba-lampa-techniczna-azzardo.html".

Адрес второй страницы: "https://azzardo.com.pl/lampy-techniczne/2111-bross-1-tuba-lampa-techniczna-azzardo.html#/kolor-chrom".

Код для воспроизведения:

from bs4 import BeautifulSoup
import requests

adres1 = "https://azzardo.com.pl/lampy-techniczne/2111-bross-1-tuba-lampa-techniczna-azzardo.html"
adres2 = "https://azzardo.com.pl/lampy-techniczne/2111-bross-1-tuba-lampa-techniczna-azzardo.html#/kolor-chrom"

def parse_one_page(adres):
    """Parse one page and get all the img src from adres"""
    # Use headers to prevent hide our script
    headers = {'User-Agent': 'Mozilla/5.0'}
    # Get page
    page = requests.get(adres, headers=headers)  # read_timeout=5
    # Get all of the html code
    soup = BeautifulSoup(page.content, 'html.parser')
    # Find div
    divclear = soup.find_all("div", class_="clearfix")
    divclear = divclear[9]
    # Find img tag
    imgtag = [i.find_all("img") for i in divclear][0]
    # Find src
    src = [i["src"] for i in imgtag]
    # See how much images are here
    print(len(src))
    # return list with img src
    return src


print(parse_one_page(adres1))
print(parse_one_page(adres2))

После запуска этого кода вы увидите, что выходные данные с этих двух адресов похожи: 24 изображения изоба адреса.На первой странице 24 изображения (это правильно).Но на второй странице здесь должно быть только 2 изображения, а не 24 (неверно)!

Так что надеюсь, что кто-нибудь поможет мне, как правильно разобрать вторую страницу в python3, используя bs4.

1 Ответ

0 голосов
/ 11 марта 2019

Да, похоже, что невозможно проанализировать такую ​​отзывчивую страницу с помощью bs4

...