我有一個IP地址的文本文件,每個在自己的行。以下腳本將遍歷列表並查詢該站點以查找與IP匹配的域並將它們打印到文件中。如果每個IP都有結果,這可以正常工作,但是當網站沒有返回域時,我會得到以下錯誤BeautifulSoup
無法匹配該屬性,並且腳本失敗。BeautifulSoup沒有發現屬性
AttributeError: 'NoneType' object has no attribute 'contents'
我試圖在那裏拋出一個if語句,但無法讓它工作。
如何讓我的腳本打印「無結果」並繼續瀏覽其餘的IP,如果在該屬性中找不到域?
import urllib2
from BeautifulSoup import BeautifulSoup
import StringIO
ipfile = open("test.txt", "r")
for line in ipfile:
line = line.strip()
site = 'http://bgp.he.net/ip/' + line + '#_dns'
#print site
s = StringIO.StringIO(site)
for line2 in s:
req = urllib2.Request(line2)
req.add_header('User-agent', 'Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0')
html = urllib2.urlopen(req)
soup = BeautifulSoup(html.read())
#print soup.prettify()
results = soup.find("div", {"id": "dns"}).a.contents
results = '\n'.join(results)
print results
f = open('out.txt', 'a')
print >>f, results
f.close
謝謝!我將進一步閱讀關於未來錯誤處理的內容。 – Christopher
好主意,這是學習和提高的最佳方式:) – Parker