還有4天就世界杯了,作為一個資深(偽)球迷,必須要實時關注世界杯相關新聞,了解各個球隊動態,這樣才能在一堆球迷中如(大)魚(吹)得(特)水(吹),迎接大家仰慕的目光!
給大家分享一個快速了解相關信息的辦法:刷論壇!我們來一起做個虎撲論壇的爬蟲吧!
抓包獲取虎撲論壇相關帖子內容,逐條顯示!
先來觀察下網頁,打開論壇首頁,選擇國際足球
然后往下拉,找到世界杯相關內容
這里就是我們的目標了,所有相關的新聞都會在這里顯示,用F12打開“開發者工具”然后往下瀏覽看看數據包
注意箭頭指向的那幾個地方!
這就是剛才瀏覽的新聞所在的json包,來看看具體數據是什么
ok,標題、地址、發布時間包括來源都已經出現了!我們可以直接抓取json數據然后取出相關內容!
再進入具體新聞頁面看看
世界杯快到了,看我用Python爬蟲實現(偽)球迷速成!
所有的文本內容,都在<div class="artical-main-content">
這個標簽下的<p></p>標簽內,我們可以用xpath直接取div下的所有文本內容!
這里就不一 一說明了,直接上代碼,并錄個小的GIF圖片給大家看看效果
#Q群542110741# -*- coding:utf-8 -*-import requestsfrom lxml import etreeheader = { '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 = 0while 1: #構建循環頁面翻頁 url = 'https://soccer.hupu.com/home/latest-news?league=世界杯&page=' i += 1 #獲取json數據,一頁20個 html = requests.get(url+str(i),headers=header).json()['result'] for info in html: time_r = info['time']#發布時間 title = info['title']#標題 url_r = info['url']#新聞鏈接 origin = info['origin']#來源 print(title) print('發布時間:',time_r,' '*5,'來自:',origin) head = header head['Host'] = 'voice.hupu.com'#更改header中Host參數 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'*2,datas,'/n') #可由用戶手動退出循環 if input('任意鍵繼續,“q”退出') in ['q', 'Q']: exit()
新聞熱點
疑難解答