ga('set', 'anonymizeIp', 1);
Categories: CodingPython

[python] PTT爬蟲 – Marvel篇

Share

PTT爬蟲系列文之MARVEL篇,將鬼怪討論串的內容,將討論度高的文章結錄存至本機電腦記事本中。

引用python套件

  • BeautifulSoup
    用於解析html DOM
    pip3 install beautifulsoup4
  • requests
    用於對網址發出http requests
    pip3 install requests

程式碼

  • 架構
  • 程式碼解析
  • Demo

架構

st=>start: 程式進入點
op1=>operation: 讀取PTT Marvel首頁
op2=>operation: 設定讀取頁數
op3=>operation: 解析HTML DOM
op4=>operation: 儲存檔案
op5=>operation: 前往下一頁URL
cond=>condition: 是否最後一頁?
e=>end: 程式結束

st->op1->op2->op3->op4->cond
cond(yes)->e
cond(no)->op5->op3

程式碼解析

from bs4 import BeautifulSoup
import requests

def main():
    # 頁面URL
    URL_now = "https://www.ptt.cc/bbs/marvel/index.html"
    # 跑的次數
    targetLoop = 100
    countLoop = 1   
    while countLoop', ' ')
    return title

if __name__ == "__main__":
    main()

Function解析

– def parsePage(pageURL)

讀取文章列表HTML DOM,取得人氣為 "爆" 或是大於 85 推以上的文章。
將文章標題及文章URL存入文章list。
呼叫loadArticle,分別處理list中各文章內容。

– def findNextPageURL(HTMLdata)

此將回傳下一頁的URL。

– def findAllTitle(HTMLdata)

此將回傳當前文章列表所有文章標題,唯一list。

– def loadArticle(data)

parse文章內容,儲存於txt檔案。

– def fixFilePath(oriPath)

處理txt檔案名稱,針對windows不合法的檔案名稱字元進行replace。

Demo

資料夾內容

txt內容

Jys

Published by
Jys

Recent Posts

[python] Flask Create RESTful API

This article gi... Read More

2 年 前發表

[Javascript] 新增/刪除JSON中key值

在web訊息交換常會需要對JS... Read More

2 年 前發表

[JAVA] SQL Server Connection

本文介紹JAVA連線SQL s... Read More

3 年 前發表