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

整理第一个python爬虫的思路

2017-09-28 19:12 162 查看
python 学习一段时间了,一直手痒想要动手做些东西,在过完廖雪峰python基础教程之后,其后面利用 python 创建博客的

项目对自己还是非常困难的。所以昨天转向写 python 简单爬虫,在观看了慕课网的爬虫视频之后,依葫芦画瓢地也写了这个

爬取百度百科的程序。踩了一些坑,也填了一些坑,把一些心得体验及时记录下来,以备未来之借鉴。

爬虫程序整体逻辑分析:

1.对程序的不同功能进行代码分离,并统一在一个包之中:pythonBaike

2.程序分为五个部分:

2.1. url 调度器 url_spider

2.2. url 管理器  url_manager

2.3. url 下载器 url_downloader

2.4. url 解析器 url_parser

2.5. url 输出器 url_outputer

3.各部分功能及方法:

3.1. url_spider

   main 函数(?) ,导入其他四个部分,并设定种子 url 作为爬虫入口。

   初始化,__init__() ,实例化其他四个部分的对象:

def __init__(self):          # 对总调程序初始化   

        self.urls = url_manager.UrlManager() 

         self.downloader = html_downloader.HtmlDownLoader()

      self.parser = html_parser.HtmlParser()

        self.outputer = html_outputer.HtmlOutputer()

建立 craw() 方法,依次进行: 添加 add_new_url(new_url) , 判断是否有 new_url: has_new_url()

取出一个 url get_new_url(); 下载 url 内容, download(new_url); 解析网页内容 psrse(url,data)

保存新爬取的 urls add_new_urls()

保存 网页内容 collect_data() ; 输出数据 output_html()

3.2. 对其余部分建立对应类,绑定对应方法。

class UrlManager(object):

def __init__():

def add_new_url():

def add_new_urls():

def has_new_url():

def get_new_url():

class UrlDownload(object):

def download():

class UrlParser(object):

def __init__():

def parse():

class HtmlOutput(object):

def collect_data():

def output_html():

每个类的绑定方法确定,逐一实现。

每个类是否都需要初始化呢。。。

将所爬取的文件写入到html 文件中,需要制定编码格式为 utf-8

对于数据形式 set() , dict {} ,list [] ,tuple() 的操作。

list.append()

list.pop()

list.insert()

dict['key']

dict.get()

dict.pop()

set(),没有重复的key

add(key)

remove(key)

urllib.request 学习。

urllib.request.urlopen(url) , 返回类文件对象,有 read() 方法

BeautifulSoup 学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: