假设我在div类中有一个文本,类似于这个<div class="col span-3">Name</div>。我试过,但没有成功。我需要提取名称,然后是类col 9中的文本。这是我的密码。
import requests
from bs4 import BeautifulSoup
url = "https://v2.sherpa.ac.uk/id/publisher/1939?template=romeo"
r = requests.get(url)
htmlContent = r.content
soup = BeautifulSoup(htmlContent, 'html.parser')
title = soup.title
print(title)
div_text = soup.find("div", {"class": "col span-3"}).get_text()
div_text = soup.find("div", {"class": "col span-9"}).get_text()
print(div_text)当我使用div_text = soup.find("div", {"class": "col span-3"}) print(div_text)时,我给出了所有标记的结果。但是当我使用.get_text()时,它只给出了第一个标签名。当我在获取文本时同时使用col 3和class 9时,它将给出具有类span-9的文本。
它只给出了一个结果,即“1066年的历史英语”,而不是标题,这个结果来自于第9课。我需要这样的“姓名: 1066蒂德斯克卢瓦的历史学英语;网址:http://www.universitypress.dk/shop/1066-tidsskrift-for-73c1.html;国家:丹麦;出版数量: 1”
发布于 2020-09-24 10:44:05
当您第二次将div_text分配给它时,您正在覆盖它。试着做这样的事情:
div_text_header = soup.find("div", {"class": "col span-3"}).get_text()
div_text_value = soup.find("div", {"class": "col span-9"}).get_text()
print(div_text_header)
print(div_text_value)对于实际需要的数据,可以这样做:
print(f'{div_text_header}: {div_text_value}')看来你是在尝试获取所有的数据。这应该是可行的:
div_headers = soup.find_all("div", {"class": "col span-3"})
div_values = soup.find_all("div", {"class": "col span-9"})
for header, value in zip(div_headers, div_values):
print(f'{header.get_text()}: {value.get_text()}')https://stackoverflow.com/questions/64044651
复制相似问题