Как использовать Beautifulsoup для получения текста от - PullRequest
0 голосов
/ 01 марта 2020

Мне нужна небольшая помощь с моим кодом. Я изучаю Python и красивый суп, чтобы собрать некоторые данные с сайта Dell.

Мне нужно получить метку обслуживания, гарантию и сервисный код от конкретного сервера, но я не понимаю, как перемещаться по дереву HTML.

Это мой код.

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from bs4 import BeautifulSoup
import time

options = Options()
options.add_argument('--headless')
driver = webdriver.Firefox(options=options, executable_path=r'/Users/peterfranca/Downloads/geckodriver')
driver.get("https://www.dell.com/support/home/ca/en/cadhs1/product-support/servicetag/0-NE9lVXI4NlpmbjFtRHJBbTF0dDhoQT090/overview")

time.sleep(1)
soup = BeautifulSoup(driver.page_source, 'html.parser')

for model in soup.findAll('h1', {'class':'mb-3 mb-lg-1 text-center text-lg-left position-relative word-break'}):
    print(model.text)

for tag in soup.findAll('p', {'class':'service-tag mb-0'}):
    print(tag.text)

for warranty in soup.findAll('p', {'id':'warrantyExpiringLabel'}):
    print(warranty.text)

for sertag in soup.findAll('p', {'class':'font-weight-medium text-jet'}):
    print(sertag.text)

driver.quit()

Последнее «за» - это то, где я не могу понять, как получить правильные данные.

for sertag in soup.findAll('p', {'class':'font-weight-medium text-jet'}):
    print(sertag.text)

По сути, я хотел бы запустить приведенный выше блок кода и получить приведенный ниже вывод.

Express Service Code: 14270045690

Может кто-нибудь помочь мне с этим? Может ли кто-нибудь также объяснить мне, как правильно перемещаться по дереву HTML?

1 Ответ

0 голосов
/ 01 марта 2020
for sertag in soup.findAll('span', {'class': 'font-weight-medium text-jet'})[1]:
    print(sertag, sertag.next_element.strip())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...