鱼C论坛

 找回密码
 立即注册
查看: 2864|回复: 15

做爬虫遇到关于标签为class的问题

[复制链接]
发表于 2020-11-19 21:31:34 | 显示全部楼层 |阅读模式

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

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

x
网上很多教程说在class改为class_就能正常运行,但是为什么改为class_之后就找不到class标签了然后报错?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-19 21:32:17 | 显示全部楼层
程序用的pycharm在跑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-19 21:40:03 | 显示全部楼层


看下你的代码,class 改成 class_ 是指匹配的数据,不是指变量哈

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

使用道具 举报

 楼主| 发表于 2020-11-19 22:28:12 | 显示全部楼层
Twilight6 发表于 2020-11-19 21:40
看下你的代码,class 改成 class_ 是指匹配的数据,不是指变量哈

代码截图如下,这样写可以吗?
Screenshot from 2020-11-19 22-26-28.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-19 22:38:59 | 显示全部楼层
snowJR 发表于 2020-11-19 22:28
代码截图如下,这样写可以吗?

发下你的报错内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 23:05:18 | 显示全部楼层
Twilight6 发表于 2020-11-19 22:38
发下你的报错内容

AttributeError: 'NoneType' object has no attribute 'get_text'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-19 23:20:46 | 显示全部楼层
snowJR 发表于 2020-11-19 23:05
AttributeError: 'NoneType' object has no attribute 'get_text'



数据提取出错了,find 没提取到数据返回 None ,而 None 没有属性 get_text 方法导致报错

你调式看看,应该是数据提取的问题,先打印完整的 html ,然后你ctrl+f 查找下你 class 的关键字

看下你爬取的源码是否有把你需要的数据爬下来,如果没有那么肯定是find 找不到的,返回 None 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-20 07:58:44 | 显示全部楼层
Twilight6 发表于 2020-11-19 23:20
数据提取出错了,find 没提取到数据返回 None ,而 None 没有属性 get_text 方法导致报错

你调式 ...

源码里是有我要的class标签数据的,改成class_之后就提取不到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-20 09:07:29 | 显示全部楼层
snowJR 发表于 2020-11-20 07:58
源码里是有我要的class标签数据的,改成class_之后就提取不到了

发文本代码用<>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-20 11:22:05 | 显示全部楼层
snowJR 发表于 2020-11-20 07:58
源码里是有我要的class标签数据的,改成class_之后就提取不到了


你爬取到的源码可能还有不可见字符比如 \ 导致你数据匹配错误

class_ 是没错的,因为如果用class 会和 Python 类定义关键字冲突

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

使用道具 举报

 楼主| 发表于 2020-11-20 13:04:50 | 显示全部楼层
Twilight6 发表于 2020-11-20 11:22
你爬取到的源码可能还有不可见字符比如 \ 导致你数据匹配错误

class_ 是没错的,因为如果用class 会 ...

我打印了源码发现用浏览器审查看到的是class标签,但是在pycharm打印出来是mxpath标签是怎么回事?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-20 13:09:20 | 显示全部楼层
snowJR 发表于 2020-11-20 13:04
我打印了源码发现用浏览器审查看到的是class标签,但是在pycharm打印出来是mxpath标签是怎么回事?

发代码,空口不凭。
soup是为了区分class字段所以用了class_。
浏览器是加载过js的,和requests.get不同很正常。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-20 13:20:31 | 显示全部楼层
Target_name = input('请输入源名称:')
url = 'https://ned.ipac.caltech.edu/byname?objname={0}'.format(Target_name)
res = requests.get(url=url,headers=headers)
soup = bs4.BeautifulSoup(res.text,features="html.parser")
Try = soup.find('span',mxpath='NED_QLPhotometryDataTable.qlphot_col3[qlphot_col1==\'Radio\']')
fin = Try.get_text()
print(soup)
print(Try)

现在我改用span标签就可以正常提取了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-20 13:51:47 | 显示全部楼层
snowJR 发表于 2020-11-20 13:20
Target_name = input('请输入源名称:')
url = 'https://ned.ipac.caltech.edu/byname?objname={0}'.forma ...

这是让我们猜url吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-20 15:18:14 | 显示全部楼层
suchocolate 发表于 2020-11-20 13:51
这是让我们猜url吗?

这里输入的是PKS%200002%2D478
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-20 18:20:38 | 显示全部楼层
snowJR 发表于 2020-11-20 15:18
这里输入的是PKS%200002%2D478


看网页码源没有public_fixedDataTableCell_cellContent这个class。
你想爬网页中的什么资源?我看这个网页好多数据都是用ajax拿的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 20:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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