Python:BeautifulSoup解析HTML,导致部分html源码丢失
伊谢尔伦
伊谢尔伦 2017-04-17 14:21:16
[Python讨论组]

在处理下载网页的时候,有时候会碰到一些奇葩的网页,在使用beautifulsoup解析的时候,会修改原来的html源码,导致下载的网页不完整。
比如:

from bs4 import BeautifulSoup
html="""<html><h1>12</h1></html><html><h2>12</h2></html>"""
soup = BeautifulSoup(html)
print str(soup)

结果:<html><h1>12</h1></html>
我的本意是先使用BeautifulSoup先对源代码进行解析处理,之后在保存html源码到本地。
而上面的例子,很明显就改变了网页源码了,导致下载的网页不全。


目前的解决办法
html = re.sub("</html>","",html,flags=re.S|re.IGNORECASE)+"</html>"
这样就能够“正常”解析了

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
天蓬老师

个人感觉有两种方案,第一就是自己用正则来判断抓取网页中有没有多个html标签,有的话自行进行分割成两个小的页面进行解析。第二个方案直接当成xml来解析。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号