BeautifulSoup4 解析列表出现丢失(已解决)

引言

我在爬取 建筑部企业项目信息的时候出现了数据丢失:以下 施工图审查 中一共有3组数据,当我遍历内容的时候发现数据停留在第一条的a标签就没有继续遍历了。

8491383-0adaa10265c4d4c2.png

image.png


后来查看F12

8491383-9697d7b328768afb.png

image.png


这个数据的中间有时候会出现空格,或者换行,导致后面的td标签无法识别。原因在于选择的解析器没有把文档格式化,换成lxml就可以了。

 

from bs4 import BeautifulSoup
import lxml
soup = BeautifulSoup(html_doc, 'lxml')  # 这里是出现问题的地方,原来我的解析器是'html.parser'
    """施工图审查"""
    tab_sgtsc_list = soup.find('div', id='tab_sgtsc').find('table').find('tbody').find_all('tr')
    try:
        for tab_sgtsc in tab_sgtsc_list:
            print('序号', tab_sgtsc.find_all('td')[0].text.strip())
            print('施工图审查合格书编号', tab_sgtsc.find_all('td')[1].text.strip())

            print('省级施工图审查合格书编号', tab_sgtsc.find_all('td')[2].text.strip())
            try:
                print('勘察单位名称', tab_sgtsc.find_all('td')[3].find('a').text.strip())
            except AttributeError:
                print('勘察单位名称', tab_sgtsc.find_all('td')[3].text.strip())
            try:
                print('设计单位名称', tab_sgtsc.find_all('td')[4].find('a').text.strip())
            except AttributeError:
                print('设计单位名称', tab_sgtsc.find_all('td')[4].text.strip())
            print('施工图审查机构名称', tab_sgtsc.find_all('td')[5].text.strip())
    except IndexError:
        print('没有施工图审查信息')

    print("*" * 50)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值