bs4 爬虫处理 html 标签的问题,关于带空格的属性标签

2018-08-20 19:25:22 +08:00
 pppguest3962
<td class="stream-6771">
    <a href="javascript:void(0);" id="vid_667" class="vh"><code style="display:none">已发送</code><i>7621</i></a>
    <s></s>
</td>
dataSoup = BeautifulSoup(tr.prettify(),'lxml')
tmpStr = dataSoup.find_all("code", class_= ["code","style"])

查阅文档和看了百度别人的经验,理论上这么做是能获取到“已发送”的字符串,

是否跟 python 的版本有关系? 用的是 python3,文档似乎更新时间久了,python2 的写法不能用?

谢谢解答!

2670 次点击
所在节点    Python
4 条回复
epicnoob
2018-08-20 20:24:15 +08:00
dataSoup.find_all("code")

dataSoup.find_all(attrs={'style': 'display:none'})
pppguest3962
2018-08-20 21:11:53 +08:00
@epicnoob,感谢您的回复解答,find_all("code")可以直接取出
```
<code style="display:none">已发送</code>
```

这个方法小喵是是摸索出来了,

其实帖里问的是如何直接取出“已发送”这三个中文字作为 tmpStr。。。

其实还是想知道如果换了方式,我还能明白技巧在哪里。。。

```
<code class="display:none">已发送变化方式之一</code>
<class fire="display:none">已发送变化方式之二</class>
<em class="display:none">已发送变化方式之三</em>
```

尽管不一定会有这样的 HTML 代码,只是想了解一下这种空格的标签,如何直接套取 text()。。。。。

感激不尽~~~!!!
zzj0311
2018-08-20 21:21:39 +08:00
.text。。
Xs0ul
2018-08-20 21:21:54 +08:00
dataSoup.find('code', attrs={'style':'display:none'}).text

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481557

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX