Python爬蟲並自製新聞網站,太好玩了

2021-01-08 AI科技大本營

來源 | 凹凸數據(ID:alltodata)

我們總是在爬啊爬,爬到了數據難道只是為了做一個詞雲嗎?

當然不!這次我就利用flask為大家呈現一道小菜。

Flask是python中一個輕量級web框架,相對於其他web框架來說簡單,適合小白練手。使用Flask+爬蟲,教大家如何實時展示自己爬下來的數據到網頁上。

先給大家展示一下這個醜醜的網頁 ↓

(給個面子,別笑)

整個流程就是簡單的三步:

爬取數據利用實時爬取數據生成詞雲利用熱點推薦新聞

爬虫部分

這次爬蟲主要利用多線程方式爬取新浪新聞+網易新聞所有欄目新聞信息。

一共14個欄目,兩個網站的頁面信息都是通過ajax加載完成的,請求對應的欄目連結後,返回的字符串是這樣的,仔細觀察會發現我們要看的新聞內容被包含在data_callback裡面

是一個列表樣式,

這時候我們就可以用eval函數將這個字符串處理成一個列表格式

def get_wy_teach:url = 'https://tech.163.com/special/00097UHL/tech_datalist.js?callback=data_callback'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}res = requests.get(url=url, headers=headers)# print(res.text)data = res.textdata = eval(data.replace('data_callback(','').replace(data[-1],""))然後下面就可以循環提取出新聞內容了,最後一步就是存儲到我們的mysql資料庫中

當我們建立好14個欄目的爬蟲後,再來編寫一個主文件main,利用簡單的多線程方法啟動14個文件並行爬取14個欄目的新聞

def multi_thread:t1 = threading.Thread(target=xzg)t2 = threading.Thread(target=xz)#......t13 = threading.Thread(target=wy_hua)t14 = threading.Thread(target=wy_chn)t1.startt2.start#......t13.startt14.start對了,爬蟲之後我們還是做了詞雲的,哈哈哈

點擊生成今日熱點新聞詞雲,靜待片刻

flask部分:

輔材處理完成,現在我們開始做主菜部分。

from flask import Flask,render_template,request#註冊創建app應用,_name_是python預定義變量app = Flask(__name__)#跨域請求corsfrom flask_cors import CORSCORS(app, resources=r'/*')#啟動爬蟲頁@app.route('/test', methods=['GET'])def mytest:main.multi_threadtime.sleep(10)return '爬取完成~'if __name__ == '__main__':app.run(debug=True,port=5000)render_template, 用於渲染我們的h5頁面app = Flask(__name__),這個是flask的必寫項,必須先定義模塊名,用於設置路由路徑(轉接4)cors跨域請求,一般用於ajax請求,CORS(app, resources=r'/*')定義app路由中所有路徑都適用於跨域請求@app.route('/test'),當你想使用mytest功能時候,設置了/test作用該函數的訪問路徑。例:http://49.233.23.230:5000/testapp.run(debug=True,port=5000),最後就是指定監聽地址埠為 5000,debug=True是調試環境,用於生產環境時可更改為Flase。這樣一個個小小的Flask頁面接口就完成了

接口寫好了,下面我們來搞個h5頁面,我們首先來建立一個簡單hmtl文件(舉例新聞推薦頁面)

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><div align=""><h1>今日新聞推薦</h1><div><ul><li> <a href="{{data[0][1]}}">{{data[0][0]}}</a></li><li> <a href="{{data[1][1]}}">{{data[1][0]}}</a></li><li> <a href="{{data[2][1]}}">{{data[2][0]}}</a></li><li> <a href="{{data[3][1]}}">{{data[3][0]}}</a></li><li> <a href="{{data[4][1]}}">{{data[4][0]}}</a></li><li> <a href="{{data[5][1]}}">{{data[5][0]}}</a></li><li> <a href="{{data[6][1]}}">{{data[6][0]}}</a></li><li> <a href="{{data[7][1]}}">{{data[7][0]}}</a></li><li> <a href="{{data[8][1]}}">{{data[8][0]}}</a></li><li> <a href="{{data[9][1]}}">{{data[9][0]}}</a></li><li> <a href="{{data[10][1]}}">{{data[10][0]}}</a></li><li> <a href="{{data[11][1]}}">{{data[11][0]}}</a></li><li> <a href="{{data[12][1]}}">{{data[12][0]}}</a></li><li> <a href="{{data[13][1]}}">{{data[13][0]}}</a></li><li> <a href="{{data[14][1]}}">{{data[14][0]}}</a></li><li> <a href="{{data[15][1]}}">{{data[15][0]}}</a></li><li> <a href="{{data[16][1]}}">{{data[16][0]}}</a></li><li> <a href="{{data[17][1]}}">{{data[17][0]}}</a></li><li> <a href="{{data[18][1]}}">{{data[18][0]}}</a></li><li> <a href="{{data[19][1]}}">{{data[19][0]}}</a></li></ul></div><div></div></div>我們將從資料庫中獲取到的數據傳入到h5文件

#新聞推薦@app.route('/news')def news_list:data = get_mysqlreturn render_template('index4.html', data=data)複製粘貼20個li方便大家理解我設置今日推薦新聞條數是20條,

你也可以通過自己喜愛算法從資料庫選擇20條新聞推送的網頁

到這,一個簡陋的 Flask 網站就完成了,是不是很簡單。

Flask 是個小巧、靈活的web框架,可以讓自己決定定製哪些功能,靈活定製組件,非常適用於小型網站。

結語:(網站想要漂亮,還是要學一下h5,別學我)

相關焦點

  • 從零開始學會Python 爬蟲,該怎麼做?
    從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它連結地址,然後通過這些連結地址尋找下一個網頁,這樣一直循環下去,直到把這個網站所有的網頁都抓取完為止。如果把整個網際網路當成一個網站,那麼網絡蜘蛛就可以用這個原理把網際網路上所有的網頁都抓取下來。
  • Python開發簡單爬蟲【學習資料總結】
    一、簡單爬蟲架構 簡單爬蟲架構 開發爬蟲步驟 python語言基礎:(帶你熟悉python語言的特性
  • 聊聊學python轉行、具體學習方法、自學python用於辦公、寫爬蟲等...
    或許是他對於現在的生活看不到新的增長點,少了一點期待,覺得迷茫,或許他覺得學python是他現在唯一能找到的可以改變生活,給生活帶來希望的東西呢?那我只顧著潑涼水就太粗暴了。然後我就問他有關工作的一些更具體的情況。果然,他說他是在傳統製造業工作的,工資低、工作無聊、看不到希望,看到現在python比較火就像試試。
  • Python爬蟲培訓機構推薦新手怎麼學習Python爬蟲
    接下來是Python爬蟲培訓機構推薦。  千鋒Python爬蟲培訓機構權威資深師資陣容,業內極具責任心、懂教學、擁有超強技術、有大型項目經驗實戰派講師授課,由業內知名專家及企業技術骨幹組成。  怎麼學習Python爬蟲?對於想學Python的人員來說,需要具備按照以下思路進行python的學習:  1. 要有決心  做任何事情,首先要有足夠的決心和堅持,才能學好Python爬蟲。  2.
  • 從零開始寫Python爬蟲,四大工具你值得擁有!
    如果你正在學習編程,那麼「爬蟲」絕對是你不可忽視的。那麼,學習python爬蟲之前需要哪些準備?一顆熱愛學習,不屈不撓的心一臺有鍵盤的電腦(什麼系統都行。我用的os x,所以例子會以這個為準)html相關的一些知識。
  • 雲立方網科普:常用高效的Python爬蟲框架有哪些?
    Python是現在非常流行的程式語言,而爬蟲則是Python語言中最典型的應用,下面是總結的高效Python爬蟲框架,大家看看是否都用過呢。 Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架,可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中
  • python 提取網頁正文_4 行 Python 代碼開發新聞網站通用爬蟲
    文 | 青南 出處 | 掘金GNE(GeneralNewsExtractor)是一個通用新聞網站正文抽取模塊,輸入一篇新聞網頁的 HTML, 輸出正文內容、標題、作者、發布時間、正文中的圖片地址和正文所在的標籤原始碼
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    而這裡的「技術手段」就是指網絡爬蟲。 今天,小編將與您分享一個爬蟲的基本知識和入門教程:什麼是爬蟲?網絡爬蟲,也叫作網絡數據採集,是指通過編程從Web伺服器請求數據(HTML表單),然後解析HTML以提取所需的數據。
  • python爬蟲――寫出最簡單的網頁爬蟲
    最近對python爬蟲有了強烈地興趣,在此分享自己的學習路徑,歡迎大家提出建議。我們相互交流,共同進步。
  • 簡單使用scrapy爬蟲框架批量採集網站數據
    本篇文章就使用python爬蟲框架scrapy採集網站的一些數據。例如: 國內常用源鏡像地址: 你可能會出現的報錯: 在安裝Scrapy的過程中可能會遇到缺少VC++等錯誤,可以安裝缺失模塊的離線包 Scrapy如何爬取網站數據
  • 開課吧Python:Python爬蟲是什麼?爬蟲工程師薪資怎麼樣?
    Python爬蟲是由Python程序開發的網絡爬蟲(webspider,webrobot),是按照一定規則自動抓取全球資訊網信息的程序或腳本。其實一般是通過程序在網頁上獲取你想要的數據,也就是自動抓取數據。為什麼需要用爬蟲?
  • Python爬蟲入門之請求庫的安裝
    請求庫的安裝爬蟲可以簡單地分為幾步:抓取頁面、分析頁面和存儲數據。在抓取頁面的過程中,我們需要模擬瀏覽器向伺服器發出請求,所以需要用到一些python庫來實現HTTP請求操作。在爬蟲的講解過程中,我們將用到的第三方庫有requests、Selenium和aiohttp等。我們將先介紹這些請求庫的方法。
  • 人生苦短,我用Python,那麼問題來了,普通人要學python嗎?
    回到家抱著冷嘲熱諷的心,我特意百度搜索了下新聞,結果我的表情是這樣的:1、Python將納入浙江省高考!從 2018 年起浙江省信息技術教材程式語言將會更換為 Python。2、Python納入山東省的小學教材課程,小學生都開始接觸 Python 語言了。
  • Python網頁爬蟲工具有哪些?
    不管文本處理,機器學習和數據發掘,都需求數據,除了通過一些途徑購買或者下載的專業數據外,常常需求我們自己著手爬數據,爬蟲就顯得分外重要。那麼,Python網頁爬蟲東西有哪些呢?1、ScrapyScrapy相Scrapy, a fast high-level screen scraping and web crawling framework for Python.信不少同學都有耳聞,課程圖譜中的許多課程都是依託Scrapy抓去的,這方面的介紹文章有許多,引薦大牛pluskid早年的一篇文章:《Scrapy 輕鬆定製網絡爬蟲》,歷久彌新。
  • Python爬蟲工具篇 - 必會用的6款Chrome插件
    Python爬蟲工具篇 - 必會用的6款Chrome插件 在日常 PC 端的Python爬蟲過程工作中,Chrome 瀏覽器是我們常用的一款工具。鑑於 Chrome 瀏覽器的強大,Chrome 網上應用商店很多強大的插件可以幫助我們快速高效地進行數據爬蟲。
  • Python——網絡爬蟲、登錄、代理設置
    一、cookie和sesson1、什麼是cookie和sessioncookie:cookie是網站用來辨別用戶身份,進行會話跟蹤,存儲在本地終端上的數據。session:session(會話)本來含義是指有始有終的一系列動作和消息。
  • 從一個簡單爬蟲項目初識Scrapy框架
    協議的網站時,需要對請求數據進行加密,對爬取的數據也需要解密。為找到正確的wheel文件,需要在Windows命令行窗口輸入「python -V」命令,查看當前Python的安裝版本。下載Twisted庫的網站提供了Python不同模塊的wheel文件,內容非常豐富,要找到Twisted庫對應的wheel文件,可以在網頁通過搜索「Twisted」定位到下載Twisted庫的頁面。
  • Python爬蟲和反爬蟲的鬥爭
    在抓取對方網站、APP 應用的相關數據時,經常會遇到一系列的方法阻止爬蟲。網站APP們這麼做的原因,一是為了保證服務的質量,降低伺服器負載,二是為了保護數據不被獲取。爬蟲與反爬蟲的鬥爭經久不衰,這裡神龍IP給大家分享一些常見的反爬蟲手段。
  • 「Python爬蟲與文本實例技術與應用」培訓班通知
    通過爬蟲獲取的海量信息,我們可以對其進行進一步的分析:市場預測、文本分析、機器學習方法等。     Python作為一門腳本語言,它靈活、易用、易學、適用場景多,實現程序快捷便利,早已經成為程式設計師們的一門編程利器。Python這門程式語言包羅萬象,可以說掌握了python,除了一些特殊環境和高度的性能要求,你可以用它做任何事。
  • Python新手都可以做的爬蟲,抓取網上 OJ 題庫信息
    最近有朋友在做 OJ 題庫,順手做個小爬蟲,導出一份題庫列表來看看!目標:浙江大學題庫工具:python3.6,requests 庫、lxml 庫、pycharm思路:先找到網頁中題庫所在的位置然後我們點擊第一頁和後面幾頁,看看 url 的變化發現規律了嗎?