与BeautifulSoup和tags抗争

2024-09-29 23:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我不想麻烦任何人,但我已经讨论这个问题好几天了

基本上,我想从这个网页上删除心理折磨的方法:https://en.m.wikipedia.org/wiki/List_of_methods_of_torture

这是我想获得的确切信息:

自我分裂

后天的无助感

中国水刑

欢迎游行(酷刑)


下面是我的代码:

from bs4 import BeautifulSoup
import requests

URL = 'https://en.m.wikipedia.org/wiki/List_of_methods_of_torture'
page = requests.get(URL)

html_soup = BeautifulSoup(page.content, 'html.parser')
type(html_soup)


print (html_soup.find("div", class_="mw-parser-output").find_all(text=True, recursive=False) )

我相信有一个简单的解决办法,我看不到。一看html网站,你可能会找到答案

真诚地致以最良好的祝愿

祝你有美好的一天

家常菜


Tags: ofhttpsorgimporturlhtmlwikiwikipedia
3条回答

试试这个。您的预期输出在第节中

from bs4 import BeautifulSoup
import requests

URL = 'https://en.m.wikipedia.org/wiki/List_of_methods_of_torture'
page = requests.get(URL)

html_soup = BeautifulSoup(page.content, 'html.parser')
print(html_soup.prettify())


print ([x.text for x in html_soup.find("section", class_="mf-section-1").find_all('a')])

这里有几个问题: 首先recursive=False参数意味着您将只获得直接位于所选节点内部的文本。您将无法从其子节点获取文本。 由于该div元素中没有直接的文本,因此该方法返回一个空列表

第二个问题:您选择的div不仅包含“心理折磨方法”部分,还包含页面的其他部分以及文章开头显示的免责声明。 要获取所需的信息,应该只获取类为mf-section-1section节点的内容

解决方案

我只是调整了你的代码来打印你需要的信息。我不得不使用lstrip方法删除不必要的换行符

from bs4 import BeautifulSoup
import requests

URL = 'https://en.m.wikipedia.org/wiki/List_of_methods_of_torture'
page = requests.get(URL)

html_soup = BeautifulSoup(page.content, 'html.parser')
type(html_soup)

print (''.join(html_soup.find("section", class_="mf-section-1").findAll(text=True)).lstrip("\n"))

输出

Ego-Fragmentation
Learned Helplessness
Chinese water torture
Welcome parade (torture)

当你有疑问的时候,用暴力强迫它,假装你以后会回来

from bs4 import BeautifulSoup
import requests

URL = 'https://en.m.wikipedia.org/wiki/List_of_methods_of_torture'
page = requests.get(URL)

html_soup = BeautifulSoup(page.content, 'html.parser')

sections = html_soup.find_all("section")
torture_methods = sections[1].find_all("li")
torture_method_names = list(map(lambda x: x.text, torture_methods))
print(torture_method_names)

印刷品:

['Ego-Fragmentation', 'Learned Helplessness', 'Chinese water torture', 'Welcome parade (torture)']

相关问题 更多 >

    热门问题