daobalong 2021-03-27 16:46 采纳率: 80%
浏览 528
已采纳

python爬虫 如何取出定位标签下的所有子集文本

如图,想要爬取网页这一部分字符串,并且按键值对的格式存下来,我的代码只能取到每个键值对value的第一个元素,比如Materials这里,只能取到Matel, 后面的几个都拿不到,代码如下 

from typing import Text
from bs4 import BeautifulSoup
import requests
from PIL import Image
import piexif
import lxml
from lxml import etree
 
 
 
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
    'Accept-Language':'zh-CN'
}
 
 
page_respond = requests.get(url = 'https://www.gooood.cn/huahui-engineering-design-and-technological-innovation-center-china-by-huahui-group-we-studio.htm',headers = headers)
page_Soup = BeautifulSoup(page_respond .content, 'lxml')




page_spec_label = page_Soup.findAll('span', class_= 'label-text')
page_spec_data = page_Soup.findAll('div', class_= 'spec-data')

 
key_word = []
value_word = []
 
for i in page_spec_label:
    # print(i.string)
    key_word.append(i.string)
 
for j in page_spec_data:
    for k in j.a:
        # print(k.string)
        value_word.append(k.string)
 

 
dict_word = dict(zip(key_word,value_word))
print(dict_word)
 

结果如下(由于在headers里把语言定成了中文,可能跟网页有时候显示的不一样)

{'设计公司': '华汇集团|伍维设计工作室', '位置': ' 中国 ', '类型': ' 建筑 ', '材料': ' 金属 ', '标签': ' 浙江 ', '分类': ' 办公建筑 '}

材料后面的值应该有4个,分类应该有2个,请问改如何抓取才能拿到呢 

 

  • 写回答

1条回答 默认 最新

  • coagenth 2021-03-27 17:15
    关注

    将原代码中这段内容:

    for j in page_spec_data:
        for k in j.a:
            # print(k.string)
            value_word.append(k.string)

    改成如下即可:

    
    for j in page_spec_data:
        s = j.find_all('a')
        if len(s)>1:
            l=';'.join([x.string for x in s])
        elif len(s)==1:
            l=s[0].string
        else:
            l=''
        value_word.append(l)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题