我的代码需要一点帮助。我正在学习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”是我无法弄清楚如何获取正确数据的地方。
for sertag in soup.findAll('p', {'class':'font-weight-medium text-jet'}):
print(sertag.text)
基本上,我想运行以上代码块并获取以下输出。
Express Service Code: 14270045690
有人可以帮我吗? 谁能也向我解释如何在HTML树中以正确的方式导航?
答案 0 :(得分:0)
for sertag in soup.findAll('span', {'class': 'font-weight-medium text-jet'})[1]:
print(sertag, sertag.next_element.strip())