原创 Python網絡爬蟲(十)——json

簡介 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。它是基於  ECMAScript(歐洲計算機協會制定的 js 規範)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。json

原创 Python網絡爬蟲(八)——CSS選擇器

CSS 層疊樣式表(Cascading Style Sheets,CSS)是一種用來表現 XML/HTML 等文件樣式的計算機語言。 CSS 不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁個元素進行格式化。 CSS 能夠對網頁

原创 Python網絡爬蟲(六)——lxml

Xpath Xpath 即爲 xml 路徑語言(XML Path Language),它是一種用來確定 XML 文檔中某部分位置的語言,能夠對 XML/HTML 文檔中的元素進行遍歷和查找。 示例 HTML 片段 <?xml versi

原创 Python網絡爬蟲(七)——BeautifulSoup4

簡介 BeautifulSoup4 也是一個 XML/HTML 的解析器,能夠解析和提取 XML/HTML 數據。 與基於 lxml 的局部遍歷不同,BeautifulSoup4 則是基於 DOM(Document Object Mode

原创 Python網絡爬蟲(五)——requests

requests 也是用於發起網絡請求的一個 python 庫。大致的邏輯差不多,接口可能有區別。 發送 get 請求 def get(url, params=None, **kwargs): r"""Sends a GET r

原创 Python網絡爬蟲(四)——urllib

本篇文章主要介紹 urllib 庫相關函數的使用。 urllib 能夠模擬瀏覽器進行網絡請求,也能夠對服務器返回的數據進行保存。urllib 主要包括幾個模塊: 模塊 描述 urllib.request 打開和讀取 URL urllib.

原创 Python網絡爬蟲(二)——http/https 協議

自上篇爬蟲文章寫完之後,好長時間都沒有再寫爬蟲相關的了,這次重新回顧了一下爬蟲的相關內容,一併記在這裏。 有的東西之前雖然已經寫過了,但是再廢話一遍。 http/https 協議 HTTP(Hypertext Transfer Proto

原创 Python網絡爬蟲(三)——chrome瀏覽器

使用爬蟲爬取網絡的數據,一般需要對網頁進行分析,而直接使用瀏覽器可以說是最方便的了,比如使用 chrome 瀏覽器就可以查看網絡請求和發送的參數。 在 chrome 瀏覽器中右鍵->檢查或者 F12 就可以打開開發者選項: 在上邊的各個

原创 C++ 中的異常拋出和捕獲

在 C 語言中,如果發生錯誤,上級函數要進行出錯處理,層層上傳,容易造成過多的出錯處理代碼,並且傳遞的效率比較低下。 C++ 中的異常 C++ 中,異常的引發和異常的處理不必處於同一個函數中,因此底層函數可以着重於解決具體問題,而不必過多

原创 C++ 中的文件 IO 流

文件流類與文件流對象 C++ 中對文件的操作是由文件流類完成的 通過文件流類可以將文件和流聯繫起來 文件流類分爲輸入流,輸出流和輸入/輸出流 再對文件進行操作之前,需要將文件流說明爲 ifstream,ofstream 或者 fstrea

原创 C++ 中的模板概念和使用方法

C++ 的語法相比較於 C 語言的語法有所改變,並且增加了面向對象的思想。在 C++ 的面向對象設計中,封裝,繼承和多態是三個比較重要的概念。除此之外還有一部分很重要的內容,就是 STL 了。而 STL 的實現就是依託於模板實現的。 ST

原创 C++ 中的 IO 流簡單使用

之前我們提到過,在 C 語言中,使用 scanf,printf 等函數實現輸入和輸出,但是在 C++ 中則是採用了 cin,cout以及流操作符進行輸入和輸出操作。 IO 類 但實際上不管是 cin 還是 cout,兩者都是類對象,主要的

原创 C++ 中的繼承方式和使用說明

定義 繼承,是從已經存在的類中獲得屬性,再此基礎之上添加自己屬性的過程。原有的類成爲基類或父類,產生的新類則爲派生類或子類。 class deriveClass:deriveMode baseClass { statement;

原创 C++ 中的多態實現和使用方法

都說 C++ 是面向對象的語言,其中的面向對象主要包括三部分:繼承,封裝,多態。繼承和封裝我們之前就簡單介紹過,這裏主要對多態的使用方法做一個簡單說明。 賦值兼容 賦值兼容說的是在使用基類對象的地方可以使用公有繼承類的對象來代替。賦值兼容

原创 C++ 中的運算符重載及其使用

在之前的文章中,我們簡單介紹過運算符重載。運算符重載其實也算是一種函數重載,只是該函數可以用下邊的兩種形式實現調用: operator x(argument); ... x ...; 上邊的形式中,x 表示運算符。其中第二種形式嚴格來說