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

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 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动