世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

2018-6-8    seo達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

還有4天就世界杯了,作為一個(gè)資深(偽)球迷,必須要實(shí)時(shí)關(guān)注世界杯相關(guān)新聞,了解各個(gè)球隊(duì)動(dòng)態(tài),這樣才能在一堆球迷中如(大)魚(吹)得(特)水(吹),迎接大家仰慕的目光!

給大家分享一個(gè)快速了解相關(guān)信息的辦法:刷論壇!我們來一起做個(gè)虎撲論壇的爬蟲吧!

抓包獲取虎撲論壇相關(guān)帖子內(nèi)容,逐條顯示!

先來觀察下網(wǎng)頁,打開論壇首頁,選擇國際足球

世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

然后往下拉,找到世界杯相關(guān)內(nèi)容

世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

這里就是我們的目標(biāo)了,所有相關(guān)的新聞都會(huì)在這里顯示,用F12打開“開發(fā)者工具”然后往下瀏覽看看數(shù)據(jù)包

世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

注意箭頭指向的那幾個(gè)地方!

這就是剛才瀏覽的新聞所在的json包,來看看具體數(shù)據(jù)是什么

世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

ok,標(biāo)題、地址、發(fā)布時(shí)間包括來源都已經(jīng)出現(xiàn)了!我們可以直接抓取json數(shù)據(jù)然后取出相關(guān)內(nèi)容!

再進(jìn)入具體新聞頁面看看

世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

所有的文本內(nèi)容,都在

這個(gè)標(biāo)簽下的

標(biāo)簽內(nèi),我們可以用xpath直接取div下的所有文本內(nèi)容!

這里就不一 一說明了,直接上代碼,并錄個(gè)小的GIF圖片給大家看看效果

#@author Q群542110741 # -*- coding:utf-8 -*- import requests from lxml import etree

header = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0', 'Host':'soccer.hupu.com', 'Referer':'https://soccer.hupu.com/'}
i = 0 while 1: #構(gòu)建循環(huán)頁面翻頁 url = 'https://soccer.hupu.com/home/latest-news?league=世界杯&page=' i += 1 #獲取json數(shù)據(jù),一頁20個(gè) html = requests.get(url+str(i),headers=header).json()['result'] for info in html:
        time_r = info['time']#發(fā)布時(shí)間 title = info['title']#標(biāo)題 url_r = info['url']#新聞鏈接 origin = info['origin']#來源 print(title)
        print('發(fā)布時(shí)間:',time_r,' '*5,'來自:',origin)
        head = header
        head['Host'] = 'voice.hupu.com'#更改header中Host參數(shù) html_r = requests.get(url_r,headers=head)#獲取新聞詳情 html_r.encoding = 'utf-8'#編碼格式指定 #獲取div下的所有文本 datas = etree.HTML(html_r.text).xpath('//div[@class="artical-content-read"]')[0].xpath('string(.)').strip()
        print('\n'+'內(nèi)容:'+'\n'*2,datas,'\n') #可由用戶手動(dòng)退出循環(huán) if input('任意鍵繼續(xù),“q”退出') in ['q', 'Q']:
            exit()
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

世界杯快到了,看我用Python爬蟲實(shí)現(xiàn)(偽)球迷速成!

藍(lán)藍(lán)設(shè)計(jì)m.820esy.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)


分享本文至:

日歷

鏈接

個(gè)人資料

存檔