python語言的原理 Python語言爬蟲原理

2021-10-11 04:56:32 字數 1874 閱讀 4928

本文主要向大家介紹了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...