仍是设计模式的开卷考试,我想要多准备一点资料,因而写了个爬虫爬取代码与图片,有巧妙地进行格式化进一步处理,最终变为了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('///') 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