@Author : By Runsen
@Author : 2020/5/16
我決定把去年寫的關(guān)于Python爬蟲文章整理一個專欄,垃圾的就直接刪除,將多篇博文整理成一篇,還補充一下其他的東西。
零基礎(chǔ)Python專欄,到底寫了什么內(nèi)容
希望大家都是Python大牛。
HTML被稱為超文本標記語言,有著一系列的標簽,這些標簽的組合可以顯示出文字,圖片,視頻等內(nèi)容。我們平時訪問的網(wǎng)頁,就是通過html編寫的。但是想要像我們看到的網(wǎng)頁那樣漂亮,我們需要為文檔添加css樣式。如果想要漂亮的動畫效果,想要圖片能夠自動播放,想要點擊出現(xiàn)一些反饋,就需要JavaScript來編寫腳本啦。
css能夠?qū)W(wǎng)頁中的各種元素(這種元素即我們提到的HTML標簽),我們可以通過它來設(shè)置背景顏色,設(shè)置元素的大小位置,設(shè)置字體的排版等等。
我們簡稱它為js,js的運行需要靠瀏覽器來運行。它是一種腳本語言,具有即時編譯的特點。js可以做一些動態(tài)的操作,比如添加一個元素,改變元素的內(nèi)容,改變css樣式。
下面我寫了一些常用的HTML標簽
<body> <!--格式化內(nèi)容標簽--> <br />換行 <hr />水平線 <strong>加粗字體</strong> <del>刪除字體</del> <big>大號字體</big> <!--HTML5已經(jīng)刪除--> <small>小號字體</small> <sub>下標字體</sub> <sup>上標字體</sup> <ins>插入字體</ins> <em >斜體著重</em> <i>斜體</i> 空格?版權(quán)符'引號>大于號<小于號 <!--圖片標簽,當圖片加載有問題時,顯示alt內(nèi)容--> <img src='img/eyes.png' alt='圖像代替文字' title='鼠標懸停文字' width='40px' height='20px' /> <!--超鏈接標簽,target跳轉(zhuǎn)方式,_blank新的頁面,_slef當前頁面--> <a href='#' target='_blank'>內(nèi)容</a> <!--錨鏈接使用方法:跳轉(zhuǎn)當前頁添加name或者id屬性,不同頁面跳轉(zhuǎn)需要添加地址--> <a name='marker'>A位置</a> <a href='#marker'>回到A位置</a> <a href='2.html#hhh'>回到新的頁面</a> <!--表格屬性:border邊框,cellpadding表格內(nèi)容與邊框的距離,cellspacing單元格之間的距離 表格合并單元格:colspan合并行,rowspan合并列 --> <table border='1' cellpadding='0' cellspacing='0'> <tr > <td colspan='2'>1</td> </tr> <tr> <td rowspan='2'>3</td> <td>4</td> </tr> <tr> <td>6</td> </tr> </table> <!--無序列表,無數(shù)字--> <ul> <li>1</li> <li>2</li> </ul> <!--有序列表,帶數(shù)字--> <ol> <li>1</li> <li>2</li> </ol> <!--定義列表,自定義標題和內(nèi)容--> <dl>標題1</dl> <dd>內(nèi)容1</dd> <dd>內(nèi)容2</dd> <dl>標題2</dl> <dd>內(nèi)容1</dd> <dd>內(nèi)容2</dd></body>
想了解更多的看我下面這篇
一、前端必須掌握HTML的基礎(chǔ)知識
在 CSS 中,我們使用 CSS 選擇器來定位節(jié)點。例如,下圖中 div 節(jié)點的 id 為 asideProfile,那么就可以表示為 #asideProfile,其中 # 開頭代表選擇 id,其后緊跟 id 的名稱。
另外,如果我們想選擇 class 為aside-box的節(jié)點,便可以使用 .aside-box,這里以點“.”開頭代表選擇 class,其后緊跟 class 的名稱。
互聯(lián)網(wǎng)就是一張大網(wǎng),而爬蟲(即網(wǎng)絡(luò)爬蟲)便是在網(wǎng)上爬行的蜘蛛。如果把網(wǎng)的節(jié)點比作一個個網(wǎng)頁,爬蟲爬到這就相當于訪問了該頁面,獲取了其信息??梢园压?jié)點間的連線比作網(wǎng)頁與網(wǎng)頁之間的鏈接關(guān)系。
爬蟲首先要做的工作就是獲取網(wǎng)頁,這里就是獲取網(wǎng)頁的源代碼。獲取網(wǎng)頁源代碼后,接下來就是分析網(wǎng)頁源代碼,從中提取我們想要的數(shù)據(jù)。
提取信息后,我們可以簡單保存為 TXT 文本或 JSON 文本,也可以保存到數(shù)據(jù)庫,如 MySQL 和 MongoDB 等,還可保存至遠程服務(wù)器。
現(xiàn)在網(wǎng)頁越來越多地采用 Ajax、前端模塊化工具來構(gòu)建,整個網(wǎng)頁可能都是由 JavaScript 渲染出來的,也就是說原始的 HTML 代碼就是一個空殼。
網(wǎng)頁請求這個js文件,獲取到該文件后,便會執(zhí)行其中的 JavaScript 代碼,而 JavaScript 則會改變 HTML 中的節(jié)點,向其添加內(nèi)容,最后得到完整的頁面。
對于,可以通過selenium或者找到Ajax的請求地址就可以解決。
爬取網(wǎng)站的時候,經(jīng)常會遇到各種各樣類似加密的情形,比如:字體加密,構(gòu)造參數(shù)加密, 想要抓取就必須要懂得找到對應(yīng)的js文件,研究這些參數(shù)是怎么構(gòu)造的,現(xiàn)在對于更多更全的信息都是通過 App 來展示的。一些 App 在內(nèi)部實現(xiàn)的時候?qū)Υ砑恿艘恍┬r?,如繞過系統(tǒng)代理直接連接或者檢測到了使用了代理,直接拒絕連接。這需要考慮使用 Wireshark、Tcpdump 在更底層的協(xié)議上抓包。
之后將以前的文章全部整理,反復(fù)鞏固。