我正在尝试从内容中获取文本但是当我在结果变量上尝试漂亮的汤函数时会导致错误。
from bs4 import BeautifulSoup as bs
import requests
webpage = 'http://www.dictionary.com/browse/coypu'
r = requests.get(webpage)
page_text = r.text
soup = bs(page_text, 'html.parser')
result = soup.find_all('meta', attrs={'name':'description'})
print (result.get['contents'])
我想把结果读来;
“海狸鼠定义,大型,南美洲,水生啮齿动物,Myocastor(或Myopotamus)的海狸鼠,产生毛皮海狸鼠。查看更多。”
答案 0 :(得分:1)
soup.find_all()
返回一个列表。因为在你的情况下,它只返回列表中的一个元素,你可以这样做:
>>> type(result)
<class 'bs4.element.ResultSet'>
>>> type(result[0])
<class 'bs4.element.ResultSet'>
>>> result[0].get('content')
Coypu definition, a large, South American, aquatic rodent, Myocastor (or Myopotamus) coypus, yielding the fur nutria. See more.
答案 1 :(得分:1)
当您只想要第一个或单个标签时,使用 find ,find_all将返回 list / resultSet :
result = soup.find('meta', attrs={'name':'description'})["contents"]
您还可以将 css选择器与 select_one 一起使用:
result = soup.select_one('meta[name=description]')["contents"]
答案 2 :(得分:0)
您不需要使用findall,因为只有使用find才能获得所需的输出&#39;
library(proxy)
trst<-read.table("Rtest_simil.csv",header=T,sep=",",dec=".")
is.numeric(trst[,2])
as.numeric(trst[,2]) #the column "espece" becomes numeric
sim<-simil(trst,diag=TRUE)
它会打印出来:
from bs4 import BeautifulSoup as bs
import requests
webpage = 'http://www.dictionary.com/browse/coypu'
r = requests.get(webpage)
page_text = r.text
soup = bs(page_text, 'html.parser')
result = soup.find('meta', {'name':'description'})
print result.get('content')