鱼C论坛

 找回密码
 立即注册
查看: 1443|回复: 11

[已解决]BeautifulSoup中 find方法 获取不到text内容

[复制链接]
发表于 2021-8-21 15:16:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import requests
from bs4 import BeautifulSoup

response=requests.get("http://ncov.dxy.cn/ncovh5/view/pneumonia")
home_page=response.content.decode()
# print(home_page)
soup=BeautifulSoup(home_page,"lxml")
script=soup.find(id="getListByCountryTypeService2true")
text=script.text
print(len(text))

怎么获取不到内容
最佳答案
2021-8-21 21:51:42
你试试用 string 方法呢,我也 text 方法没用,用 string 方法就可以,原因我再研究研究
import requests
from bs4 import BeautifulSoup

response = requests.get("http://ncov.dxy.cn/ncovh5/view/pneumonia")
home_page = response.content.decode()
# print(home_page)
soup = BeautifulSoup(home_page, "lxml")
script = soup.find(id="getListByCountryTypeService2true")
text = script.string
print(len(text))

运行结果:
190421
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-21 15:24:37 | 显示全部楼层
import requests
from bs4 import BeautifulSoup

headers = {'user-agent': 'Mozilla'}
r = requests.get("http://ncov.dxy.cn/ncovh5/view/pneumonia", headers=headers)
soup = BeautifulSoup(r.text, "lxml")
script = soup.find(id="getListByCountryTypeService2true")
print(script)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 17:00:08 | 显示全部楼层

首先谢谢你的解答,     不过,你这个代码同我的一样也是可以 print(script),没有区别,  现在我是需要的是 print(script.text) ,也就是不要标签中的文本

我的理解不知道正不正确:
print(script)          包含前后标签
print(script.text)   不包含前后标签
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 17:01:58 | 显示全部楼层
print(script.text) 我输出的是空, 我不明白错在哪个地方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 17:10:43 | 显示全部楼层
script=soup.find(id="getListByCountryTypeService2true")
script   <class 'bs4.element.Tag'>      是个类, 我没法用正则表达式处理如, re.findall(r'\[.+\]',script)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-21 17:12:21 | 显示全部楼层
本帖最后由 suchocolate 于 2021-8-21 17:15 编辑
niceyes 发表于 2021-8-21 17:00
首先谢谢你的解答,     不过,你这个代码同我的一样也是可以 print(script),没有区别,  现在我是需要的是  ...


我这输出正常
Screenshot 2021-08-21 171156.jpg

用你的代码也有文字,不是空的。
Screenshot 2021-08-21 171456.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 17:20:10 | 显示全部楼层

怪事了,为什么我这 返回 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 17:23:45 | 显示全部楼层

print(script.attrs)         里面只有   {'id': 'getListByCountryTypeService2true'}  没有 text
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 17:28:43 | 显示全部楼层
但是 print(script) 是正常的, 就是 print(script.txt) 没内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-21 17:30:22 | 显示全部楼层
然后,我直接用 正则表达式处理 script 也报错,     
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-21 21:51:42 | 显示全部楼层    本楼为最佳答案   
你试试用 string 方法呢,我也 text 方法没用,用 string 方法就可以,原因我再研究研究
import requests
from bs4 import BeautifulSoup

response = requests.get("http://ncov.dxy.cn/ncovh5/view/pneumonia")
home_page = response.content.decode()
# print(home_page)
soup = BeautifulSoup(home_page, "lxml")
script = soup.find(id="getListByCountryTypeService2true")
text = script.string
print(len(text))

运行结果:
190421
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-22 11:03:33 | 显示全部楼层
白two 发表于 2021-8-21 21:51
你试试用 string 方法呢,我也 text 方法没用,用 string 方法就可以,原因我再研究研究

辛苦你了,   找到原因别忘了发出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 13:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表