Python二级(10)——Python的计算机生态

一、知识导图

图1.png

二、计算思维

1、人类在认识世界、改造世界过程中表现出三种基 本的思维特征:以实验和验证为特征的实证思维, 以物理学科为代表;以推理和演绎为特征的逻辑 思维,以数学学科为代表;以设计和构造为特征 的计算思维,以计算机学科为代表。
2、 计算思维的本质是 抽 象 ( A b s t r a c t i o n ) \color{red}{抽象(Abstraction)} (Abstraction) 自 动 化 ( A u t o m a t i o n ) \color{red}{自动 化(Automation)} (Automation)

三、程序设计方法论

四、计算生态

五、基本的Python内置函数

图2.png
图3.png
图4.png

六、实例解析:Web页面元素提取

1、 Web页面元素提取

I、Web页面,一般是HTML页面,是Internet组织 信息的基础元素。Web页面元素提取是一类常见 问题,在网络爬虫、浏览器等程序中有着不可或 缺的重要作用
II、HTML指超文本标记语言,严格来说,HTML不 是一种编程语言,而是一种对信息的标记语言, 对Web的内容、格式进行描述。
III、 自动地从一个链接获取HTML页面是网络爬虫的 功能,本实例功能可以整体分成如下4个步骤:
• 步骤1: 读取保存在本地的html文件;
• 步骤2:解析并提取其中的图片链接;
• 步骤3:输出提取结果到屏幕;
• 步骤4:保存提取结果为文件。
IV、根据上述步骤,可以写出主程序如下。其中设置 了4个函数getHTMLlines()、extractImageUrls()、
showResults()和saveResults()分别对应上述4个 步骤。

def main():
        inputfile = 'nationalgeographic.html'
        outputfile = 'nationalgeographic-urls.txt'  
        htmlLines = getHTMLlines(inputfile)
        imageUrls = extractImageUrls(htmlLines)
        showResults(imageUrls)
        saveResults(outputfile, imageUrls)

V、定义main()函数的目的是为了让代码更加清晰, 作为主程序,也可以不采用函数形式而直接编写。 main()前两行分别制定了拟获取HTML文件的路 径和结果输出路径。主函数设计完成后,逐一编写各函数功能。
VI、getHTMLlines()函数读取HTML文件并内容, 并将结果转换为一个分行列表,为了兼容不同编 码,建议在open()函数中增加encoding字段,设 置采用UTF-8编码打开文件。代码如下。

def getHTMLlines(htmlpath):
        f = open(htmlpath, "r", encoding='utf-8') 
        ls = f.readlines()
        f.close()
        return ls

VI、extractImageUrls()是程序的核心,用于解析文件并提取图像的URL。观察HTML可以发现,图像采用img标签表示,例如:

<img title="photo story"
src="http://image.nationalgeographic.com.cn/2018/0122/20 180122042251164.jpg" width="968px" />

VII、其中,<img开头是图像标签的特点,其中由src=所引导 的URL是这个图像的真实位置。每个URL都以http开头。 因此,可以通过字符串操作提取其中的图像链接。

def extractImageUrls(htmllist):
    urls = []
    for line in htmllist:
        if 'img' in line:
            url = line.split('src=')[-1].split('"')[1]
            if 'http' in url:
    return urls urls.append(url)

VIII、showResults()函数将获取的链接输出到屏幕上,增加一个计数变量提供更好用户体验,saveResults()保存结果到文件。

def showResults(urls):
        count = 0
        for url in urls:
            print('第{:2}个URL:{}'.format(count, url)) 
            count += 1
def saveResults(filepath, urls):
    f = open(filepath, "w")
    for url in urls:
        f.write(url+"\n")
    f.close()

交流

如果你有更好的解法或者有不同的意见,大家可以畅所欲言,共同提高进步!
群主也是小白一枚,零基础学习python,要勇于提问,大家共同探讨,共同学习进步!

1、加入qq群一起交流学习:818757567

图.png

2、关注微信公众号:python大星

图.png

江山如此多娇,引无数英雄竞折腰。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值