......<td align="center"><div align="center">高良涧</div></td> <td align="center"><div align="center">50916400</div></td> <td align="center"><div align="center">2021-08-20 15:55:00</div></td> <td colspan="2" align="center"><div align="center">12.95</div></td> <td align="center"><div align="center"></div></td> <td align="center"><div align="center">六垛南闸</div></td> <td align="center"><div align="center">51002250</div></td> <td align="center"><div align="center">2021-08-20 15:55:00</div></td> <td align="center"><div align="center">2.70</div></td> <td align="center"><div align="center">2.20</div></td> <td align="center"><div align="center"></div></td> <td align="center"><div align="center">运西电站</div></td> <td align="center"><div align="center">51002102</div></td> <div align="center">2021-08-20 15:55:00</div></td> <td colspan="2"><div align="center">7.12</div></td> </tr> <td height="13"><div align="center"></div></td> <td align="center"><div align="center">高良涧闸(闸上游)</div></td>....
爬取网页表格数据,如加粗部分,数据需要对应起来,最好如此 高良涧-50916400-20210820 15:55:00-12.95,数据清洗后能对应起来,第一次提问,可能描述不清。
网页表中的关键字都相似,python如何进行数据清洗,且不错位
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-HGJ 2021-08-20 17:23关注
使用bs4对网页内容解析,用panda写成数据框,存入excel中,数据相对工整。
当数据比较多时,最好用pd.read_html()获取表格数据。import bs4 import pandas t=''' <td align="center"><div align="center">高良涧</div></td> <td align="center"><div align="center">50916400</div></td> <td align="center"><div align="center">2021-08-20 15:55:00</div></td> <td colspan="2" align="center"><div align="center">12.95</div></td> <td align="center"><div align="center"></div></td> <td align="center"><div align="center">六垛南闸</div></td> <td align="center"><div align="center">51002250</div></td> <td align="center"><div align="center">2021-08-20 15:55:00</div></td> <td align="center"><div align="center">2.70</div></td> <td align="center"><div align="center">2.20</div></td> <td align="center"><div align="center"></div></td> <td align="center"><div align="center">运西电站</div></td> <td align="center"><div align="center">51002102</div></td> <div align="center">2021-08-20 15:55:00</div></td> <td colspan="2"><div align="center">7.12</div></td> </tr> <td height="13"><div align="center"></div></td> <td align="center"><div align="center">高良涧闸(闸上游)</div></td>''' tx=bs4.BeautifulSoup(t,'lxml') a=[td.text for td in tx.select('td div') if td.text!=''] b=[a[:4],a[4:9],a[9:12],a[12:]]#因数据不规整,通过切片获取每行数据,这是对特定数据进行的处理,通用做法是遍历子节点比如tr进行获取行数据。 df=pd.DataFrame(b) print(df) df.to_excel('t820.xlsx',index=False,header=None)
0 1 2 3 4 0 高良涧 50916400 2021-08-20 15:55:00 12.95 None 1 六垛南闸 51002250 2021-08-20 15:55:00 2.70 2.20 2 运西电站 51002102 7.12 None None 3 高良涧闸(闸上游) None None None None
如有帮助,请点采纳。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效