Я учусь Python, и одним из моих первых проектов является очистка веб-страницы Dell для извлечения некоторых данных для их хранения в Zabbix.
По сути, мне нужно извлечь гарантийную информацию о некоторых наших серверах. Это код, который я получил до сих пор.
import requests
from bs4 import BeautifulSoup
my_url = 'https://www.dell.com/support/home/ca/en/cadhs1/product-support/servicetag/0-NE9lVXI4NlpmbjFtRHJBbTF0dDhoQT090/overview'
# UserAgent
headers = {
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8,pt-BR;q=0.7,pt;q=0.6",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "cross-site",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-5e5752df-915a054873c751c475708940"
}
# Opening up connection to site
uClient = requests.get(my_url, headers=headers)
page_soup = BeautifulSoup(uClient.content, 'html.parser')
print(page_soup)
Интересно то, что когда я проверяю страницу, я вижу данные, которые хочу очистить, но когда я печатаю страницу в коде, данных там нет. Кажется, что извлеченные данные являются неполными.
Это часть данных <p id="warrantyExpiringLabel" class="mb-0">Expires 11 DEC. 2022</p>
, которую я хочу увидеть в своем скрипте, но ее там нет при печати.
Я читал на некоторых онлайн-форумах, говоря, что некоторые данные вставляются через javascript и поэтому библиотека Beautifulsoup не может извлечь ее. Мне нужно использовать какую-то другую библиотеку, чтобы иметь возможность собирать данные.
Я все еще изучаю Python и Beautifulsoup lib, поэтому мне может понадобиться кто-то, чтобы указать мне правильное направление.
Может кто-нибудь поделиться своими знаниями со мной, чтобы я мог выучить эту библиотеку?