首页 > Python:BeautifulSoup解析HTML,导致部分html源码丢失

Python:BeautifulSoup解析HTML,导致部分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来解析。

【热门文章】
【热门文章】