您的位置:首页 > 编程语言 > Python开发

利用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 spider 爬虫