📘
Python web crawler note
  • Introduction
  • 1. 環境安裝與爬蟲的基本
  • 1.1 環境安裝
  • 1.2 IDE設定
  • 1.3 一隻很原始的爬蟲
  • 1.4 幫爬蟲裝煞車
  • 2. 用BeautifuSoup來分析網頁
  • 2.1 BeautifulSoup範例 - 1
  • 2.2 BeautifulSoup說明
  • 2.3 BeautifulSoup範例 - 2
  • 2.4 加入Regular Expression
  • 2.5 Dcard今日十大熱門文章
  • 3. 更多實際的應用
  • 3.1 PTT八卦版今日熱門文章
  • 3.2 Yahoo奇摩電影本週新片
  • 3.3 蘋果日報/自由時報今日焦點
  • 3.4 Google Finance 個股資訊
  • 3.5 Yahoo奇摩字典
  • 4. 基於API的爬蟲
  • 4.1 八卦版鄉民從哪來?
  • 4.2 Facebook Graph API
  • 4.3 imdb電影資訊查詢
  • 4.4 Google Finance API
  • 4.5 台灣證券交易所API
  • 5. 資料儲存
  • 5.1 痴漢爬蟲(PTT表特版下載器)
  • 5.2 儲存成CSV檔案
  • 5.3 儲存至SQLite
  • 6. 不同編碼/文件類型的爬蟲
  • 6.1 非UTF-8編碼的文件
  • 6.2 XML文件
  • 7. 比價爬蟲
  • 7.1 momo購物網爬蟲
  • 7.2 PChome 24h API爬蟲
  • 7.3 比價圖表程式
  • 8. 處理POST請求/登入頁面
  • 8.1 空氣品質監測網
  • 9. 動態網頁爬蟲
  • 9.1 台銀法拍屋資訊查詢
  • 10. 自然語言處理
  • 10.1 歌詞頻率與歌詞雲
Powered by GitBook
On this page

Was this helpful?

2.5 Dcard今日十大熱門文章

這邊就簡單示範一下怎麼取得Dcard上的今日十大熱門文章.

import requests
import re
from bs4 import BeautifulSoup


def main():
    dcard_topic_page = 'https://www.dcard.tw/f'
    resp = requests.get(dcard_topic_page)
    soup = BeautifulSoup(resp.text, 'html.parser')

    # ^ means "start with"
    topic_entry_pattern = '^PostEntry_container_'
    topic_title_pattern = 'strong'
    find_top10_hot_topic_title(soup, topic_entry_pattern, topic_title_pattern)


def find_top10_hot_topic_title(soup, topic_entry_pattern, topic_title_pattern):
    top_ten_topic = soup.find_all('div', {'class': re.compile(topic_entry_pattern)})
    i = 1
    for topic in top_ten_topic[:10]:
        print(str(i) + ': ' + topic.find(topic_title_pattern).text)
        i += 1


if __name__ == '__main__':
    main()

輸出如下:

1: 見到網美讓我哭了(更新)
2: 阿滴英文真的超讚!推爆
3: 我的搞笑「亡霉」日常生活 #圖多😂😂😂
4: 你們知道蛋放久會長毛嗎?
5: 超狂!對岸美妝收納賣家的售後服務
6: #黑特   為什麼要為了拍照發ig闖禁地?
7: 宣告違憲  媽媽卻告訴我別結婚
8: 女孩,不要有劇本💋
9: #圖 #貓 流浪貓真的要花很多時間
10: 想瘦下來要養成的幾個好習慣

Process finished with exit code 0
Previous2.4 加入Regular ExpressionNext3. 更多實際的應用

Last updated 5 years ago

Was this helpful?

原始碼

點我