Извлечение всех цветов из стиля класса Span на веб-странице с использованием Python - PullRequest
0 голосов
/ 08 октября 2018

Это мой текущий код, я пытаюсь импортировать все 'background-color rgb и значения из стиля в span class.f. С сайта ниже

https://www.asianpaints.com/colour/colour-catalogue.html

скриншот страницы html

import requests
from bs4 import BeautifulSoup as bs
import os

URL = "https://www.asianpaints.com/colour/colour-catalogue.html"
r = requests.get(URL)

collec = bs(r.content, 'lxml')

color= collec.find_all(class_='color-box3')

print(color)

1 Ответ

0 голосов
/ 08 октября 2018

Все значения RGB выполняются с использованием Javascript, который Python или BeautifulSoup не будут обрабатывать, поэтому вы не увидите нужную информацию в возвращаемом HTML.

Альтернативный и более простой подход заключается в определениизапрос, который делает веб-страница, чтобы получить список цветов в форме ответа JSON.Затем данные могут быть легко преобразованы в словарь Python с помощью функции запросов json(), а затем доступны как словарь Python:

import requests

URL = "https://www.asianpaints.com/content/ap/en/home/colour/colour-catalogue/jcr:content/oneColumnParsys/colourcatalog.colourfamily.json"
data = requests.get(URL).json()

for shade in data['shades']:
    name = shade['shadeName']
    rgb = f"({shade['shadeR']}, {shade['shadeG']}, {shade['shadeB']})"
    print(f"{name} - {rgb}")

Предоставляя вам оттенки, начиная следующим образом:

Raven Song - (64, 64, 64)
Platinum Blue - (56, 61, 103)
Black Currant - (65, 64, 67)
Stormy Sky - (58, 65, 80)
Armada - (55, 70, 91)
Navy Blue - (56, 67, 90)
Blue Mountain - (51, 73, 95)
Rich Berry - (77, 67, 72)

Протестировано на Python 3.6.6

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