本文主要向大家介紹了python語言爬蟲原理,通過具體的內容向大家展示,希望對大家學習python語言有所幫助。
#匯入模組re,用於實現正則提取資訊class spider():
#需要抓取的網路鏈結
url = ""
restring_div = '
([\s\s]*?)
#正則:獲取主播名
restring_name = '([\s\s]*?)'
restring_number = '([\s\s]*?)'
def __fetch_content(self):
請求網路,獲取整個網頁的hmtl字串
r = request.urlopen(spider.url)
data = r.read()
htmlstring = str(data,encoding="utf-8") return htmlstring def __alalysis(self,htmlstring):
使用正則初步獲取資料,得到主播資訊(主播名和瀏覽量)的陣列
videoinfos = re.findall(spider.restring_div,htmlstring)
anchors = #print(videoinfos[0])
for html in videoinfos :
name = re.findall(spider.restring_name,html)
number = re.findall(spider.restring_number,html)
anchor =
return anchors def __refine(self,anchors):
將資料進一步提煉,去除空格等多餘字元
f = lambda anchor :
newanchors = list(map(f,anchors)) #print(newanchors)
return newanchors def __sort(self,anchors):
資料分析:排序瀏覽量從大到小
anchors = sorted(anchors,key=self.__sort_seed,reverse = true) return anchors def __sort_seed(self,anchor):
排序規則
list_nums = re.findall('\d*',anchor["number"])
number = float(list_nums[0]) if '萬' in anchor["number"]:
number = number * 10000
return number def __show(self,anchors):
展示資料,將已經排序好的資料列印出來
for rank in range(0,len(anchors)):
print("第" + str(rank+1) +"名:" + anchors[rank]["number"] + "\t" + anchors[rank]["name"]) def startrun(self):
程式入口,開始執行爬蟲
htmlstring = self.__fetch_content()
anchors = self.__alalysis(htmlstring)
anchors = self.__refine(anchors)
anchors = self.__sort(anchors)
self.__show(anchors)
#建立爬蟲類,爬取資料spider = spider()
spider.startrun()然後,我們將看到如下的列印效果
python介面程式設計 R程式語言的Python介面
正如 lgautier所指出的那樣,在這個問題上已經有了另乙個答案。我在這裡留下我的答案,因為它增加了將r作為新手的經驗,首先了解python。我同時使用python和r,並同意您作為r的新手的需要。由於您得到的任何答案都是主觀的,因此,根據我的經驗,我總結了幾點 但是不要指望在不學習兩者的情況下,...
怎樣學習python語言 如何學習python語言
python語言很神秘嗎 python作為一款類自然語言的程式語言,很方便的就可以上手,而且可以說是老少皆宜。用python程式設計非常簡單,只要有一台電腦 無論windows或者蘋果 就可以完成python程式設計。完成python程式設計首先需要在電腦上安裝python環境,安裝完成後就可以開始...
python實現約瑟夫 約瑟夫問題python實現
python語言之如何實現約瑟夫環問題 def josephus n,m if type n 60個人從1開始編號每人拿乙個號碼牌排成圈,從 1開始報數,第一次報數 totalnum 猴子總數 startnum 開始序號 intervalnum 間隔數def kingelect totalnum,s...