利用python写一个简易的爬虫,基于慕课网对应课程
2016-09-11 00:17
609 查看
1.前言
要按看懂本文内容,首先需要对python的语法以及爬虫的概念有所了解,如果想学习前者,可以看看廖雪峰的python教程;如果先学习后者则可以看看慕课网上的python开发简易爬虫,视频不长但内容清晰明了,本文的代码就是基于此改编(视频中用的是python2),并加上了一些注释。#python版本:python3
#依赖的库:beautifulsoup4
#代码下载:https://github.com/lqsherlock/SimpleSpider
#编辑环境:eclipse
2.实现的功能
基于Python3以及beautifulsoup4库实现了一个简易的爬虫,用于爬取百度百科“python”词条下的指定个链接数。该爬虫主要可以分为5各部分,分别通过5个不同的类实现。3.各类说明
SpiderMain:主类,控制爬虫的行为,以及爬取的链接数量UrlManager:URL管理类,方法包括添加新的URL,判断是否还有URL,获取一个URL
HtmlDownloader:网页下载类,用于下载对应URL网页的内容
HtmlParser:网页内容解析类,用于从爬取的网页内容中提取出主题,简介等信息,并提取出新的URL
HtmlOutputer:结果输出类,用于收集每轮循环后的爬取结果,并在爬取完预设的链接个数后,将所有结果通过html的格式呈现出来
4.关键代码
<span style="font-size:14px;"> def craw(self,root_url):count = 1
#设定初始链接
self.urls.add_new_url(root_url)
#进入爬取循环
while self.urls.has_new_url():
#如果出错则打印错误信息
try:
#获取一个新链接
new_url = self.urls.get_new_url()
print('********************************************')
print('craw %d : %s' %(count,new_url))
print('********************************************')
#将对应URL的页面内容下载下来
html_cont = self.download.download(new_url)
#通过对页面的分析,提取出新的链接,和本页面的标题、简介
new_urls,new_data = self.parser.parser(new_url,html_cont)
#将提取出的链接添加进列表
self.urls.add_new_urls(new_urls)
#将收集到的页面信息存取
self.outputer.collect_data(new_data)
#判断爬取的链接数量是否到达指定数量
if count == 3:
break
count += 1
except :
print('crew fail:')
#爬取完后,以html格式打印所爬取的信息
self.outputer.output_html() </span>
相关文章推荐
- 一个基于python的数据爬虫
- 【python学习笔记】14:开发一个简易的爬虫
- ”Python开发简单爬虫“慕课网课程学习笔记1
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- python3,requests。写了一个简单的爬虫,爬取爱课程首页的图片
- 慕课网 Python 开发简答爬虫课程笔记
- Python开发简单爬虫(根据慕课网视频课程整理)
- python一个下载小说的简易爬虫
- 基于python的一个大规模爬虫遇到的一些问题总结
- Python爬虫-爬取慕课网课程
- 笔记︱利用python + flask制作一个简易本地restful API
- 如何使用Python基于Pygame写一个简易的微信打飞机游戏。
- Python爬虫 - 使用requests和re模块爬取慕课网课程信息
- 基于python利用爬虫爬取网页教程
- ”Python开发简单爬虫“慕课网课程学习笔记1
- 基于python利用爬虫爬取网页教程
- 利用Python写一个爬妹子的爬虫
- 基于Python的一个简单爬虫(糗事百科爬虫)
- 利用openresty写一个简易的基于websocket的即时通讯(im)聊天