玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python BeautifulSoup解析html时部分源码丢失怎么办?

在处理下载网页的时候,有时候会碰到一些奇葩的网页,在使用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>"
这样就能够“正常”解析了

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

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19038.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月24日 - 14时54分55秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules