我有一個腳本,解析一個站點地圖xml和第一次存儲在數組中。然後設置它,以便刷新,解析並將所需的xml標籤存儲到另一個數組中,以檢查是否有任何差異。第二個陣列在xmls刷新中每3秒不斷更新。然而,它似乎掛起來,我想知道問題是什麼。
import urllib,time
from time import gmtime, strftime
from xml.dom import minidom
url='http://kutoa.com/sitemap_products_1.xml?from=1&to=999999999'
def main():
primList=[]
secList=[]
xml = urllib.urlopen(url).read()
xmldoc = minidom.parseString(xml)
loc_values = xmldoc.getElementsByTagName('loc')
for loc_val in loc_values:
item=(loc_val.firstChild.nodeValue)
primList.append(item)
for i in primList:
secList.append(item)
while len(secList)==len(primList):
print str(strftime("%Y-%m-%d %H:%M:%S", gmtime()))+' :: '+str(len(secList)) +' items indexed...'
print 'destruct list'
secList=[]
print 'empty list/reading url'
xml = urllib.urlopen(url).read()
print 'url read/parsing'
xmldoc = minidom.parseString(xml)
print 'parsed going for tags'
loc_values = xmldoc.getElementsByTagName('loc')
print 'adding tags'
for loc_val in loc_values:
item=(loc_val.firstChild.nodeValue)
secList.append(item)
print 'tags added to list'
time.sleep(3)
print 'sleep for 3\n'
if len(primList)>len(secList):
print 'items removed'
main()
elif len(secList)>len(primList):
print 'items added'
main()
main()
用打印語句進行故障排除我發現它在打開url時被掛起。下面是最近的一些輸出:
2015-12-26 18:30:21 :: 7 items indexed...
destruct list
empty list/reading url
url read/parsing
parsed going for tags
adding tags
tags added to list
sleep for 3
2015-12-26 18:30:24 :: 7 items indexed...
destruct list
empty list/reading url
url read/parsing
parsed going for tags
adding tags
tags added to list
sleep for 3
2015-12-26 18:30:27 :: 7 items indexed...
destruct list
empty list/reading url
再沒有什麼更多的將輸出和我的程序將只是掛,未封端的最後解析輸出下。這個網絡是相關的嗎?任何想法/補救措施將不勝感激!
添加更多輸出,以便您可以確定哪條線懸掛。 –
此外,這是一個外部網站?如果是這樣,它可能有一些邏輯,以避免像這樣的重複請求過載。每分鐘只嘗試輪詢。 –
@MartinBonner感謝您的回覆。通過添加一些基本的打印語句進行故障排除,我發現它在這裏陷入了困境:\t \t xml = urllib.urlopen(url).read() –