在處理下載網(wǎng)頁(yè)的時(shí)候,有時(shí)候會(huì)碰到一些奇葩的網(wǎng)頁(yè),在使用beautifulsoup解析的時(shí)候,會(huì)修改原來(lái)的html源碼,導(dǎo)致下載的網(wǎng)頁(yè)不完整。
比如:
from bs4 import BeautifulSoup
html="""<html><h1>12</h1></html><html><h2>12</h2></html>"""
soup = BeautifulSoup(html)
print str(soup)
結(jié)果:<html><h1>12</h1></html>
我的本意是先使用BeautifulSoup先對(duì)源代碼進(jìn)行解析處理,之后在保存html源碼到本地。
而上面的例子,很明顯就改變了網(wǎng)頁(yè)源碼了,導(dǎo)致下載的網(wǎng)頁(yè)不全。
目前的解決辦法
html = re.sub("</html>","",html,flags=re.S|re.IGNORECASE)+"</html>"
這樣就能夠“正?!苯馕隽?/p>
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
個(gè)人感覺(jué)有兩種方案,第一就是自己用正則來(lái)判斷抓取網(wǎng)頁(yè)中有沒(méi)有多個(gè)html標(biāo)簽,有的話自行進(jìn)行分割成兩個(gè)小的頁(yè)面進(jìn)行解析。第二個(gè)方案直接當(dāng)成xml來(lái)解析。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)