1. 程式人生 > >python處理轉載部落格html

python處理轉載部落格html

前景

在轉載別人部落格的時候通常我們會通過複製html然後放到編輯器裡面, 但是通常html裡有很多雜七雜八的東西, 比如scriptsvg這些標籤導致排版出現問題

例如由lu標籤引起的

在這裡插入圖片描述

由svg標籤引起的
在這裡插入圖片描述
當然要說你直接把不要的東西刪除也可以, 但是作為一個程式設計師,能用電腦做的事當然是不用自己做啦, 於是就有了下面一步

程式碼實現

程式碼採用Python, 因為Python有BeautifulSoup,能很好的處理html檔案, 例如指定標籤刪除等, 所以就採用Python3來寫這些程式碼。

分析出現排版問題的原因

  • 程式碼行下方出現數字是因為 有


      在這裡插入圖片描述

  • 開頭顯示不正常 是因為註釋和

<svg>

在這裡插入圖片描述

如何去除指定標籤和註釋

#去除屬性ul
[s.extract() for s in soup("ul")]
# 去除屬性svg
[s.extract() for s in soup("svg")]
# 去除屬性script
[s.extract() for s in soup("script")]

Python程式碼

# 輸入網址把 html變成md
import requests
import time

from bs4 import BeautifulSoup,
Comment def get_page_source(url): try: r = requests.get(url, timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "failed" if __name__ == '__main__': blogUrl = "https://blog.csdn.net/qq_36124194/article/details/83686823"
#blogUrl = input("請輸入轉載地址\n") blogText = get_page_source(blogUrl) soup = BeautifulSoup(blogText, 'html.parser') #去除屬性ul [s.extract() for s in soup("ul")] # 去除屬性svg [s.extract() for s in soup("svg")] # 去除屬性script [s.extract() for s in soup("script")] #去除註釋 comments = soup.findAll(text=lambda text: isinstance(text, Comment)) [comment.extract() for comment in comments] #得到正文 articleText = soup.find('div', attrs={'class': 'markdown_views prism-atom-one-dark'}) # 加入 轉載地址說明 finalStr = "## 轉載地址 \n" + "## " +blogUrl + " \n" + str(articleText) print(finalStr)