python - beautifulsoup获取网页内容的问题
问题描述
我要的是这个里面的内容<p class='talk-article__body talk-transcript__body'>
PYTHON代码:
neirong=soup.find(’p’,{’class’:’talk-article__body talk-transcript__body’})
但是返回的结果是空。这个选择器是不是写错了?
问题解答
回答1:neirong=soup.find_all(’p’,class_=’talk-article__body talk-transcript__body’)
https://www.crummy.com/softwa...
回答2:参照:https://www.crummy.com/softwa...中给出的说明,正确的使用方式是:neirong=soup.find(’p’,class_=’talk-article__body talk-transcript__body’)
为了获取p包含的内容,进一步调用neirong.contents即可
回答3:neirong = soup.select(’.talk-article__body.talk-transcript__body’)回答4:
你从浏览器看到的内容有js动态生成的,用bs匹配不到,我发现看到的比较奇怪的class名基本都是js生成的
回答5:使用find_all吧,find不能用于class
回答6:个人觉得用BeautifulSoup来解析网页的时候,如果楼主打算通过css特性来进行元素的定位的话,最好还是使用soup.select(),这个方法可以用class的value当参数也可以用标签的的attribute当参数,很方便,用于搜索单一标签最好用,同时参数支持css选择器字符串,比如:soup.select('#id > .class a.title').
soup.find()方法目前好像用的不多,不知道是不是BeautifulSoup4弃用了。现在一般只要出现find,就是find_all()等方法。以上详细参考“超级汤”的中文文档:http://beautifulsoup.readthed...
相关文章:
1. 无法为JSP编译类:无法解析类型java.util.Map $ Entry。从所需的.class文件间接引用它2. vue.js - android环境下在vue中引入vux.js 报错。3. mysql - 仅仅只是把单引号与反斜杠转义不用prepare statement能否避免sql注入?4. javascript - 一排三个框,各个框的间距是15px,距离外面的白框间距也是15px,这个css怎么写?5. php - 问个类型转化的问题,float类型转int,觉得可能会出问题,但结果并没有?6. java - springboot 修改默认静态资源文件读取路径7. 用python3的smtplib库发邮件一直返回无法发送邮件提示,是什么原因?8. 第6行的$_GET[’F’]没有定义啊?求问一下是什么意思?9. javascript - 怎样优化网页打开速度呢?10. python - pysciter 如何配置运行环境?

网公网安备