Python开发简单爬虫课程源代码及解析

徐老师的课程“Python开发简单爬虫”(链接:Python开发简单爬虫_python爬虫入门教程_python爬虫视频教程-慕课网)思路清晰,步骤详细,讲解细致,是非常好的Python爬虫开发入门课程。美中不足的是随着时间推移,课程中的有些库更新了,百度百科词条的url格式也变了,如果完全按照课程的内容开发代码是不能正常工作的。

下面是经过修改后的代码,而且为便于初学者阅读,添加了详细注释。


共5个源代码文件:spider_main.py, url_manager.py, html_downloader.py, html_parser.py, html_outputer.py
其中,spider_main.py是主文件,调用了其他几个文件。

运行方式:在IDE(如Geany)中运行spider_main.py 或 在命令行方式下键入:py spider_main.py


爬虫调度器模块spider_main.py的源代码如下:

# -*- coding: utf-8 -*-
# 爬虫之调度器模块
# from: www.imooc.com 课程----Python开发简单爬虫----百度百科Python词条页面相关1000条链接的定向爬虫
# author: Anna Yao
# date: 2020-09-14

import url_manager, html_downloader, html_parser, html_outputer

class SpiderMain(object):
	def __init__(self):
		self.urls = url_manager.UrlManager() # url管理器
		self.downloader = html_downloader.HtmlDownloader() # 页面下载器
		self.parser = html_parser.HtmlParser() # 页面解析器
		self.outputer = html_outputer.HtmlOutputer() # 输出解析后的结果
	
	def craw(self, root_url):
		count = 1 # 对爬取的页面计数
		self.urls.add_new_url(root_url) # 将根页面url"https://baike.baidu.com/item/Python/407313"添加至new_urls集合
		while self.urls.has_new_url():
			try:
				new_url = self.urls.get_new_url()
				print('craw %d : %s' %(count, new_url)) # 显示正在爬取的页面url
				html_cont = self.downloader.download(new_url) # 下载当前url网页内容
				new_urls, new_data = self.parser.parse(new_url, html_cont) # 解析下载的网页
				self.urls.add_
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值