beautifulsoup获取网页内容的问题

冯老板
  • 58
我要的是这个里面的内容
<div class="talk-article__body talk-transcript__body">

PYTHON代码:

neirong=soup.find('div',{'class':'talk-article__body talk-transcript__body'})

但是返回的结果是空。这个选择器是不是写错了?

回复
阅读 4k
6 个回答
✓ 已被采纳
  • 个人觉得用BeautifulSoup来解析网页的时候,如果楼主打算通过css特性来进行元素的定位的话,最好还是使用soup.select(),这个方法可以用class的value当参数也可以用标签的的attribute当参数,很方便,用于搜索单一标签最好用,同时参数支持css选择器字符串,比如:soup.select("#id > .class a.title").

  • soup.find()方法目前好像用的不多,不知道是不是BeautifulSoup4弃用了。现在一般只要出现find,就是find_all()等方法。
    以上详细参考“超级汤”的中文文档:http://beautifulsoup.readthed...

grass_of_sky
  • 1
新手上路,请多包涵

参照:https://www.crummy.com/softwa...中给出的说明,正确的使用方式是:
neirong=soup.find('div',class_='talk-article__body talk-transcript__body')

为了获取div包含的内容,进一步调用neirong.contents即可

neirong = soup.select('.talk-article__body.talk-transcript__body')
_北秋凉
  • 4
新手上路,请多包涵

你从浏览器看到的内容有js动态生成的,用bs匹配不到,我发现看到的比较奇怪的class名基本都是js生成的

使用find_all吧,find不能用于class

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏