python beautifulsoup可以';粉饰
我好像做错了什么事。我有一个使用urllib提取的HTML源代码。基于这个HTML文件,我使用beautifulsoup查找ID为指定数组的元素。这对我来说是可行的,但是输出很混乱,包括换行符“\n”python beautifulsoup可以';粉饰,python,beautifulsoup,Python,Beautifulsoup,我好像做错了什么事。我有一个使用urllib提取的HTML源代码。基于这个HTML文件,我使用beautifulsoup查找ID为指定数组的元素。这对我来说是可行的,但是输出很混乱,包括换行符“\n” Python:2.7.12 美化组:bs4 我曾尝试使用prettify()更正输出,但总是出现错误: 属性错误:结果集对象没有属性“美化” import urllib import re from bs4 import BeautifulSoup cfile = open("test.tx
- Python:2.7.12
- 美化组:bs4
import urllib
import re
from bs4 import BeautifulSoup
cfile = open("test.txt")
clist = cfile.read()
clist = clist.split('\n')
i=0
while i<len (clist):
url = "https://example.com/"+clist[i]
htmlfile = urllib.urlopen (url)
htmltext = htmlfile.read()
soup = BeautifulSoup (htmltext, "html.parser")
soup = soup.findAll (id=["id1", "id2", "id3"])
print soup.prettify()
i+=1
我只是不知道是什么。对不起,如果这是一个愚蠢的问题。我使用Python和Beautiful Soup才几天。您正在将
Soup
变量重新分配给.findAll()
的结果,这是一个ResultSet
对象(基本上是一个标记列表),它没有prettify()
方法
解决方案是保持soup
变量指向BeautifulSoup
实例。
findAll返回匹配标记的列表,因此您的代码等于[tag1,tag2..]。prettify()
调用
findAll()
后,汤的类型是什么?运行type(soup)
“输出混乱且包含换行符”\n”“-哪个输出?你从哪里得到你不满意的结果?在您给出的代码中,唯一可以输出任何内容的是print soup.prettify()
,因为您说它会抛出错误,所以它不能输出。你最终想做什么?如果在每个元素上使用.text
属性会怎么样?@CivFan当然是结果集
?@AlexHall只是想引导Eric找到自己的答案alecxe
在他的回答中明确了这一点。
soup = soup.findAll (id=["id1", "id2", "id3"])