利用requests和BeautifulSoup爬取菜鳥教程的代碼與圖片並保存爲markdown格式

仍是設計模式的開卷考試,我想要多準備一點資料,因而寫了個爬蟲爬取代碼與圖片,有巧妙地進行格式化進一步處理,最終變爲了markdown的格式html

import requests 
from bs4 import BeautifulSoup

首先得到菜鳥教程-工廠模式這個頁面的html,轉爲soup對象python

r = requests.get("https://www.runoob.com/design-pattern/factory-pattern.html")
#獲取反饋信息 200爲正常
r.status_code
r.encoding = "utf-8"
soup=BeautifulSoup(r.text,'lxml')
print(soup.prettify())

經過觀察可知須要爬取的連接都是以‘/design’開頭的,因此利用startswith()篩選,獲得url列表設計模式

html_list=[]
for a in soup.find_all('a'):
    if(a['href'].startswith('/design')):
        print(a['href'])
        html_list.append(a['href'])

寫一個爬取每一個頁面的函數,先將markdown語言放在註釋中,註釋用三條斜槓,方便格式化。markdown

+def fonepage(add):
    baseurl="https://www.runoob.com"
    url=baseurl+add
    r = requests.get(url)
    #獲取反饋信息 200爲正常
    r.status_code
    r.encoding = "utf-8"
    soup=BeautifulSoup(r.text,'lxml')
    lis=soup.find_all(attrs={'class':'example'})
    print('///## '+add)
    img=soup.find_all('img')
    print('///![]('+baseurl+img[0]['src']+')')
    print('///```')
    for son in lis:
        for a in son.find_all('span'):
            print(a.string,end=' ')
    print('\n')
    print('///```')

而後逐頁爬取便可app

for i in range(2,len(html_list)):
    fonepage(html_list[i])

最後進行加工,利用IDEA進行格式化,隨後用notepad刪除全部的'///'字符串,就轉爲markdown格式了。函數

結果以下:https://www.cnblogs.com/Tony100K/p/11741212.htmlurl

原文出處:https://www.cnblogs.com/Tony100K/p/11742333.htmlspa

相關文章
相關標籤/搜索