爬蟲練手-豆瓣top250(go版以及python版)

??最近學(xué)習(xí)go,就找了一個例子練習(xí)【go語言爬蟲】go語言爬取豆瓣電影top250,思路大概就是獲取網(wǎng)頁,然后根據(jù)頁面元素锨苏,用正則表達(dá)式匹配電影名稱、評分棺聊、評論人數(shù)伞租。原文有個地方需要修改下<code>pattern4 := <img width="100" alt="(.*?)" src=</code>,這樣就能運行了

結(jié)果截圖

這個例子可以由修改下變成并發(fā)的形式限佩,提高性能(參考golang 并發(fā) chan

var sem chan int = make(chan int,10);
   for i := 0; i < 10; i++ {
       go func(i int) {
           header := map[string]string{
               "Host":                      "movie.douban.com",
               "Connection":                "keep-alive",
               "Cache-Control":             "max-age=0",
               "Upgrade-Insecure-Requests": "1",
               "User-Agent":                "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
               "Accept":                    "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
               "Referer":                   "https://movie.douban.com/top250",
           }
           fmt.Println("正在抓取第" + strconv.Itoa(i) + "頁......")
           url := "https://movie.douban.com/top250?start=" + strconv.Itoa(i*25) + "&filter="
           spider := &Spider{url, header}
           html := spider.get_html_header()
           
           pattern2 := `<span>(.*?)評價</span>`
           rp2 := regexp.MustCompile(pattern2)
           find_txt2 := rp2.FindAllStringSubmatch(html, -1)
           
           pattern3 := `property="v:average">(.*?)</span>`
           rp3 := regexp.MustCompile(pattern3)
           find_txt3 := rp3.FindAllStringSubmatch(html, -1)

           
           pattern4 := `<img width="100" alt="(.*?)" src=`
           rp4 := regexp.MustCompile(pattern4)
           find_txt4 := rp4.FindAllStringSubmatch(html, -1)

           for i := 0; i < len(find_txt2); i++ {
               fmt.Printf("%s %s %s\n", find_txt4[i][1], find_txt3[i][1], find_txt2[i][1], )
               f.WriteString(find_txt4[i][1] + "\t" + find_txt3[i][1] + "\t" + find_txt2[i][1] + "\t" + "\r\n")

           }
           sem <- 0
       }(i)
   }
   for i := 0; i < 10; i++ { <-sem }
   close(sem)
并發(fā)效果截圖

??到這里go爬蟲部分已經(jīng)介紹完畢肯夏,百無聊賴之際又寫了一個python版,python果真是簡潔,最后祝大家買買買得開心

# coding=utf-8  #
import re
import urllib2
import datetime
def getDouban(i):
    print "爬取第" + str(i)+"頁"
    html = "https://movie.douban.com/top250?start=" + str(i) + "&filter="
    try:
        page = urllib2.urlopen(html, timeout=3)
        result = page.read()
        score = re.findall('property="v:average">(.*?)</span>',result)
        person = re.findall('<span>(.*?)評價</span>',result)
        name= re.findall('<img width="100" alt="(.*?)" src=', result)
        j=0
        while j<len(name):
            print name[j], score[j]+'分', person[j]
            j=j+1
    except:
        print i
starttime = datetime.datetime.now()
params=[]
for i in range(25):
    getDouban(i)
endtime = datetime.datetime.now()
print "爬蟲歷時"+str((endtime-starttime).seconds)+"s完成"
python版運行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犀暑,一起剝皮案震驚了整個濱河市驯击,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌耐亏,老刑警劉巖徊都,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異广辰,居然都是意外死亡暇矫,警方通過查閱死者的電腦和手機主之,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來李根,“玉大人槽奕,你說我怎么就攤上這事》拷危” “怎么了粤攒?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長囱持。 經(jīng)常有香客問我夯接,道長,這世上最難降的妖魔是什么纷妆? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任盔几,我火速辦了婚禮,結(jié)果婚禮上掩幢,老公的妹妹穿的比我還像新娘逊拍。我一直安慰自己,他們只是感情好际邻,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布芯丧。 她就那樣靜靜地躺著,像睡著了一般枯怖。 火紅的嫁衣襯著肌膚如雪注整。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天度硝,我揣著相機與錄音肿轨,去河邊找鬼。 笑死蕊程,一個胖子當(dāng)著我的面吹牛椒袍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼隧土!你這毒婦竟也來了芋齿?” 一聲冷哼從身側(cè)響起价淌,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帆焕,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年不恭,在試婚紗的時候發(fā)現(xiàn)自己被綠了叶雹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片财饥。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖折晦,靈堂內(nèi)的尸體忽然破棺而出钥星,到底是詐尸還是另有隱情,我是刑警寧澤满着,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布谦炒,位于F島的核電站,受9級特大地震影響漓滔,放射性物質(zhì)發(fā)生泄漏编饺。R本人自食惡果不足惜乖篷,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一响驴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撕蔼,春花似錦豁鲤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至讼溺,卻和暖如春楣号,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背怒坯。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工炫狱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剔猿。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓视译,卻偏偏與公主長得像,于是被迫代替她去往敵國和親归敬。 傳聞我的和親對象是個殘疾皇子酷含,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容