今天完成昨天說的,採集網頁並驗證,這個程式有一定難度
練習 驗證wikipedia鏈結名稱的最後一項與頁面標題是否相符
import unittest
from bs4 import beautifulsoup
from urllib.request import urlopen
import datetime
import random
random.seed(datetime.datetime.now())
class
webtest
(unittest.testcase):
bsobj = none
url = none
deftest_content
(self):
global bsobj
global url
url = ""
for i in range(1,100):
bsobj = beautifulsoup(urlopen(url))
titles = self.titlematchesurl()
self.assertequals(titles[0],titles[1])
self.asserttrue(self.contentexist())
url = self.randomurl()
print("finished!")
pass
defsetup
(self):
print("test begin!")
pass
deftitlematchesurl
(self):
global bsobj
global url
title = bsobj.find("h1").get_text()
urltitle = url[(url.index('/wiki/')+6):]
urltitle = urltitle.replace("_"," ")
# urltitle = unquote(urltitle)
return [title.lower(),urltitle.lower()]
pass
defcontentexist
(self):
global bsobj
global url
content = bsobj.find("div",)
if content is
notnone:
return
true
return
false
pass
defrandomurl
(self):
global url
global bsobj
urllist = bsobj.findall("a",)
url = urllist[random.randint(0,len(urllist)-1)]
return
""+url.attrs["href"]
pass
if __name__ == '__main__':
unittest.main()
這個程式寫下來,總體上沒有什麼問題,工作量中等但是思路總的來說還是很簡單的。我在寫的過程中比較難的地方竟然是處理字串,這叫我有些沒想到。
說一下總體的結構
整個測試模組包含在webtest類中,裡面有五個函式今天先到這裡啦,開學了事情開始多起來了,打卡~test_content,測試的主體,整個類裡面只有這乙個測試,其他函式都是為它做支撐,作用是比較標題與url中相應的內容是否相符
setup,起始函式
titlematchesurl,處理網頁中實際的標題與url中的標題名,用陣列做返回一次性返回兩者
contentexist,檢測百科詞條內容是否存在,在test_content作為乙個引數
randomurl,取回隨機的下乙個url
學習python 第三十九天
python 好的 防止python指令碼中被重複執行 ifname main if x 判斷真 if not x 判斷假 if x in items 包含 for x in items 迭代 不使用臨時變數交換兩個值 a,b b,a 用序列構建字串。sr a a c c b b ss join s...
株洲所實習的第三十九天(周記 八)
今天是2020年1月6日星期一,記錄一下上週發生的事情。上週買了一本西班牙語的書,開始自學西班牙語。學了第一天之後,我發現西語有乙個特點,是這個單詞怎麼拼寫,基本上就怎麼發音。西語的母音無論出現在哪個位置,都是發原本的音。espa a是西語的西班牙的意思。我覺得挺有趣的,不過有一點讓我不太適應的是,...
第三十九周學習筆記
原文 rich feature hierarchies for accurate object detection and semantic segmentation目標檢測發展停滯,通過複雜的ensemble模型才能勉強提高一些精度 兩個 insights 三個模組 一些名詞 為什麼不直接使用fi...