python爬虫,用find_all()找到某一标签后,怎么获取下面数个同名子标签的内容 5

r=requests.get(link,headers=header,timeout=20)soup=BeautifulSoup(r.text,'lxml')div=so... r=requests.get(link,headers=header,timeout=20)soup=BeautifulSoup(r.text,'lxml') div=soup.find_all('div',class_="star")如图,用find_all找到这个标签后,下面有4个<span>标签,怎么同时获取它们的内容放入一个列表里输出啊? 展开
 我来答
我心我在
2018-02-08 · TA获得超过2157个赞
知道小有建树答主
回答量:784
采纳率:77%
帮助的人:628万
展开全部
#!/usr/bin/env python
# coding:utf-8
from bs4 import BeautifulSoup
#这个data 可以替换成你的 div=soup.find_all('div',class_="star")
#取的时候 记得循环处理
data = '''
    <div>
    <span class='a' protype='d'>1</span>
    <span class='a' protype='d'>2</span>
    <span class='a' protype='d'>3</span>
    <span class='a' protype='d'>4</span>
    </div>
'''
soup = BeautifulSoup(data, 'lxml')
spans = soup.find_all('span')
span_content=[]
for i in spans:
    print i ,i.text #这里取标签span的内容
    span_content.append(i.text)
print span_content

------------------------
<span class="a" protype="d">1</span> 1
<span class="a" protype="d">2</span> 2
<span class="a" protype="d">3</span> 3
<span class="a" protype="d">4</span> 4
[u'1', u'2', u'3', u'4']
追问
谢谢这么认真回我啦,这个问题困惑了我很久。
如果只解析一段,这样确实可以解决问题。
但是我是在一个网页中,有多段这样的代码(就是多个这样的data),如果没个都复制下来放在代码里,不现实啊。
所以我才用了find_all()搜寻到多段这样的,作为一个列表返回,然后我就不知道该怎么读取里面4个的内容了。
这该怎么弄啊?希望能继续解答,或者加个什么好友,多谢帮助啊。
你好赛利ya
2020-02-19
知道答主
回答量:1
采纳率:0%
帮助的人:648
展开全部
div=soup.find_all('div',class_="star") #此时已经将标签为div,class=star的所有内容列出
你可以在这个数据的基础上,再进行一次find_all来进行查找<span>标签。
例:
for k in soup.find_all('div',class_="star"):
cont=k.find_all('span') #将第一步find_all出来的值再进行find_all

print(cont[0].string) #由于一个div标签里有四个'span',所以是列表形式cont[0],取第几个值就看你的需求了。

我也是新手,纯交流。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
荣耀与尘埃
2020-01-04 · 超过11用户采纳过TA的回答
知道答主
回答量:129
采纳率:50%
帮助的人:15.9万
展开全部
items = soup.find_all(class_='star')
for item in items :

t1 = item.find(class_='rating5-t')
num = item.find(class_='rating_num')
be1=item.find(proprety)
be2 = item.find(prperty='v.best')
print(t1.text,'\n',num.text,'\n',be1.text,'\n',be2.text,'\n',)

仅供参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-12-26
展开全部
用for,找了好久才找到解决办法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式