5057段子一鍵取並保存為Markdown文檔

5057段子一鍵取並保存為Markdown文檔

來自專欄有趣的Python項目實戰

一鍵運行獲取內涵吧的所有內涵段子並保存為Markdown格式文檔。

源碼獲取:後台回復『內涵』即可

本文意願

本文的意願為通過對某網站的爬取,掌握基本的爬蟲技能並非以爬取其段子內容為目的。在爬取過程中,請務必設置好爬取的時間間隔,以免影響網站的正常運行。

實戰目標

  1. 分析網頁的規律
  2. 使用requests庫爬取
  3. 運用正則進行數據清洗和構造
  4. 本地文件保存方法

 分析網頁規律

通過觀察網址的變化,我們只需要更改url最後一個數字即可,並且這個數字即為當前頁數。

# 第一頁https://www.neihan8.com/article/list_5_1.html # 第二頁https://www.neihan8.com/article/list_5_2.html# 第三頁https://www.neihan8.com/article/list_5_3.html........

使用requests庫爬取

這裡主要是使用get請求方式獲取網頁內容,需要注意的是需要帶上User-Agent和Referer連個請求頭信息。因為通過F12發現瀏覽器發送的請求頭攜帶了這兩個參數,為避免對放以這兩個欄位進行反爬而獲取失敗,我們就帶上這兩個欄位

# 請求某一具體頁面數據 def request(self, url, index): print(url:, url) # 設置時間間隔, 以免對目標網站造成太大壓力 time.sleep(0.5) # 為了規避反爬,爬取的不是第一頁需帶上Referer請求頭信息 if index != 1: # 動態生成url self.headers[Referer] = https: // www.neihan8.com / article / list_5_{}.html.format(index - 1) # 獲取響應數據 response = requests.get(url, headers=self.headers) # 此網站使用GBK編碼,對返回的數據進行相應解碼 return response.content.decode(gbk)

數據清洗

在這裡使用大量的正則進行對我們需要的數據進行清洗和處理。

# 對數據進行提取清洗 def parse_data_list(self, index): # result_list存放已解析清洗好的段子數據 self.result_list = [] # 獲取到的段子列表數據放到duanzi duanzi = self.get_data(index) # 對段子列表數據duanzi每一個段子去掉空格和其他字元,保留換行 for item in duanzi: result = re.sub(r[<b>|</b>|<br />|<br>|<p>|</p>|\u3000|\r|s|t|div|sa], "", str(item)) result = result.replace(&ldqo;, ).replace(&dqo;, ).replace(&helli;, ...).replace(&lqo;, ).replace( &qo;, ).replace(&hell;, ...).replace(n, \n).replace(&zwj;, ).replace(&qot;, ").replace( &mh;, ).strip( ) result = re.sub(ryle.*?(?:x;|)|;|
|x)"
, , result) result = re.sub(rhef.*?ml", , result) result = re.sub(r"cl=.*?(?:we|d+")", , result) result = re.sub(rc=.*?.jg", , result) # 把清洗好的數據添加到result_list self.result_list.append(eval(result)) return self.result_list

保存為Markdown文檔

主要構造為三號標題和正文即可

# 每一頁數據保存為一個單獨的Markdowm文檔 def save_md(self, index): duanzi_list = self.parse_data_list(index) file = open(內涵段子{}.md.format(index), w) for item in duanzi_list: # 拼接成Markdown格式 file.write(### + item[0] + item[1]) # 關閉文件 file.close()

一鍵運行效果

妥妥的506頁,506個Markdown文檔,5057個段子。

源碼獲取:後台回復『內涵』即可

推薦閱讀:

免費文檔網站
數字密碼錶-360文檔中心
文檔

TAG:Markdown | 文檔 | Markdown語法 |