使用findAll检索html中的关键字,大小写把我心态搞崩了

今天在学习Python网络数据采集时,看到”把数据存储到CSV“这一小结,准备练习一下,作者爬取的网站是维基百科的,我只能用百度搜索到的网站练习,http://xh.5156edu.com/page/z1015m9220j18754.html,我用了这个网站准备爬取颜色表。

结果。。。很简单的任务搞了解决一个半小时,心态崩了,怀疑人生。。。

我使用BeautifulSoup对象接受html数据,在用findAll搜索关键字时出现了问题,一模一样的关键字竟然搜不出来???

            <TR>
              <TD class=content>
                <DIV>
                  <TABLE width='100%'>
                    <TBODY>
                      <TR>
                        <TD width='15%' align=middle>&nbsp;</TD>
                        <TD align=middle>颜色名</TD>
                        <TD height=28 align=middle>中文名称</TD>
                        <TD align=middle>Hex&nbsp;RGB</TD>
                        <TD align=middle>十进制 Decimal</TD>
                        <TD width='15%' align=middle>&nbsp;</TD>
                      </TR>
                      <TR>
                        <TD bgColor=#ffb6c1>&nbsp;</TD>
                        <TD bgColor=#dedede>LightPink</TD>
                        <TD bgColor=#dedede height=28>浅粉红</TD>
                        <TD bgColor=#c0c0c0>#FFB6C1</TD>
                        <TD bgColor=#c0c0c0>255,182,193</TD>
                        <TD bgColor=#ffb6c1>&nbsp;</TD>
                      </TR>

我敏锐地挑选出<TD class=content>作为搜索关键字,但是当使用如下代码时,搜索结果为空???!!?

bsObj.findAll("TD", {"class": "content"}

 我尝试着换一些关键字,发现有些可以,有些不可以。。。

直到。。。

我把TD 改为 td 发现搜索结果出来了。。。

所以原来的html中为什么搞成大写啊???

把关键字都写成小写,结果就出来了

下面附上完整代码,将表格数据导入到csv,My God!真是开心的一天呢,又踩了一个坑,哈哈哈

import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup

import time
html = urlopen("http://xh.5156edu.com/page/z1015m9220j18754.html")
bsObj = BeautifulSoup(html, features="lxml")
colorName = bsObj.findAll("td", {"bgcolor": "#dedede"})
colorCode = bsObj.findAll("td", {"bgcolor": "#c0c0c0"})
csvFile = open("../color.csv", "wt", newline="", encoding='utf-8')
writer = csv.writer(csvFile)
try:
    for i in range(int(len(colorName)/2)):
        row = []
        row.append(colorName[i*2].get_text())
        row.append(colorCode[i*2].get_text())
        writer.writerow(row)
finally:
    csvFile.close()
    print('done...')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值