还是设计模式的开卷考试,我想要多准备一点资料,于是写了个爬虫爬取代码与图片,有巧妙地进行格式化进一步处理,最终变为了markdown的格式

  1. import requests
  2. from bs4 import BeautifulSoup

首先获得菜鸟教程-工厂模式这个页面的html,转为soup对象

  1. r = requests.get("https://www.runoob.com/design-pattern/factory-pattern.html")
  2. #获取反馈信息 200为正常
  3. r.status_code
  4. r.encoding = "utf-8"
  5. soup=BeautifulSoup(r.text,'lxml')
  6. print(soup.prettify())

通过观察可知需要爬取的链接都是以‘/design’开头的,所以利用startswith()筛选,得到url列表

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

写一个爬取每个页面的函数,先将markdown语言放在注释中,注释用三条斜杠,方便格式化。

  1. +def fonepage(add):
  2. baseurl="https://www.runoob.com"
  3. url=baseurl+add
  4. r = requests.get(url)
  5. #获取反馈信息 200为正常
  6. r.status_code
  7. r.encoding = "utf-8"
  8. soup=BeautifulSoup(r.text,'lxml')
  9. lis=soup.find_all(attrs={'class':'example'})
  10. print('///## '+add)
  11. img=soup.find_all('img')
  12. print('///![]('+baseurl+img[0]['src']+')')
  13. print('///```')
  14. for son in lis:
  15. for a in son.find_all('span'):
  16. print(a.string,end=' ')
  17. print('\n')
  18. print('///```')

然后逐页爬取即可

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

最后进行加工,利用IDEA进行格式化,随后用notepad删除所有的'///'字符串,就转为markdown格式了。

结果如下:https://www.cnblogs.com/Tony100K/p/11741212.html

利用requests和BeautifulSoup爬取菜鸟教程的代码与图片并保存为markdown格式的更多相关文章

  1. PYTHON 爬虫笔记九:利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集(实战项目二)

    利用Ajax+正则表达式+BeautifulSoup爬取今日头条街拍图集 目标站点分析 今日头条这类的网站制作,从数据形式,CSS样式都是通过数据接口的样式来决定的,所以它的抓取方法和其他网页的抓取方 ...

  2. Python使用urllib,urllib3,requests库+beautifulsoup爬取网页

    Python使用urllib/urllib3/requests库+beautifulsoup爬取网页 urllib urllib3 requests 笔者在爬取时遇到的问题 1.结果不全 2.'抓取失 ...

  3. 利用requestes\pyquery\BeautifulSoup爬取某租房公寓(深圳市)4755条租房信息及总结

    为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: 1 import requests 2 from reque ...

  4. python3.6 利用requests和正则表达式爬取猫眼电影TOP100

    import requests from requests.exceptions import RequestException from multiprocessing import Pool im ...

  5. 爬虫系列(十一) 用requests和xpath爬取豆瓣电影评论

    这篇文章,我们继续利用 requests 和 xpath 爬取豆瓣电影的短评,下面还是先贴上效果图: 1.网页分析 (1)翻页 我们还是使用 Chrome 浏览器打开豆瓣电影中某一部电影的评论进行分析 ...

  6. python3 requests + BeautifulSoup 爬取阳光网投诉贴详情实例代码

    用到了requests.BeautifulSoup.urllib等,具体代码如下. # -*- coding: utf-8 -*- """ Created on Sat ...

  7. requests+xpath+map爬取百度贴吧

    # requests+xpath+map爬取百度贴吧 # 目标内容:跟帖用户名,跟帖内容,跟帖时间 # 分解: # requests获取网页 # xpath提取内容 # map实现多线程爬虫 impo ...

  8. 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  9. Python爬虫【三】利用requests和正则抓取猫眼电影网上排名前100的电影

    #利用requests和正则抓取猫眼电影网上排名前100的电影 import requests from requests.exceptions import RequestException imp ...

随机推荐

  1. 【pymongo.errors】Cursor not found

    pymongo.errors.CursorNotFound: Cursor not found 故事背景:先从数据库中取得所有数据 db['test'].find(),然后对结果进行for循环,但是当 ...

  2. php tp5 composer

    ## php tp5 composer安装tp5.1需要先去装个Apache或者Nginx,再装个php环境.一般Windows可以直接使用xmapp.然后tp5好像python的django啊... ...

  3. PacMan 01——玩家移动

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  4. 【面试】足够“忽悠”面试官的『Spring事务管理器』源码阅读梳理(建议珍藏)

    PS:文章内容涉及源码,请耐心阅读. 理论实践,相辅相成 伟大领袖毛主席告诉我们实践出真知.这是无比正确的.但是也会很辛苦. 就像淘金一样,从大量沙子中淘出金子一定是一个无比艰辛的过程.但如果真能淘出 ...

  5. java Mail如何发送邮件

    1.应用场景:在系统需要发送与用户相关的消息时,而用户不在线,可以采取发送邮件的方式,使用户了解最新的系统情况 或者发送验证码等验证场景 2.实验环境 主要使用mail.jar和activation. ...

  6. 认识Airflow的DAG

    前文Airflow的第一个DAG已经跑起来了我们的第一个任务. 本文就来丰富这个任务. 回顾我们的任务内容 我们定义了DAG的名称为Hello-World, 这个叫dag_id, 补充说明descri ...

  7. CDH6.3.0 - Cloudera Enterprise 6 Release Guide 安装准备篇

    一.安装之前 Cloudera管理器的存储空间规划 ClouderaManager跟踪许多后台流程中的服务.作业和应用程序的指标.所有这些指标都需要存储.根据组织的大小,此存储可以是本地的或远程的,基 ...

  8. 如何把安全证书导入到java中的cacerts证书库(转)

    如何把安全证书导入到java中的cacerts证书库   提示: javax.net.ssl.SSLHandshakeException: sun.security.validator.Validat ...

  9. 如何评价一个VR体验设计?

    如何评价一个VR系统的体验是好是坏?或者说,哪些因素会破坏一个VR的体验? Kruij和Riecke教授在IEEE VR会议上提到了四个角度:Congnition,Game User Experien ...

  10. ELK 学习笔记之 Logstash之codec配置

    Logstash之codec: Logstash处理流程: input=>decode=>filter=>encode=>output 分类: Plain编码: input{ ...