函数getdownLoadInfo(url)主要实现核心功能:根据url地址,获取课程信息:课程名(courseTitle),课程数目(courseCount),可下载视频数目(videoCount),视频下载链接(videoUrl):不过再讲解之前,需要对编码的相关知识进行说明:

#coding:utf-8

  关于python编码的问题,的确是个值得研究的问题,因为简直是乱的一塌糊涂,大家可以看一些讲解的文章,这里不做深入讲解,只是给出结论性的东西,方便实际的使用:

1.正因为有了中文,才有了一系列关于编码的问题,如果全是英文,不用考虑编码问题,但是用中文实在是不可避免,例如注释、日志、以及抓取的网页的内容,往往会涉及到中文,所以还是应该了解些编码问题。

2.在eclipse中增加文件的编码声明后(如声明为utf-8),那么保存后的.py文件,也会相应存储为utf-8的编码,这是IDE自动转化的,可以在eclipse的文件属性中查看,如下:

3.编码声明有多种写法,例如:#coding=utf-8,#coding:utf-8,#-*-coding:utf-8-*-,用哪种呢?结论是哪个都可以!为什么呢?请参看:http://blog.csdn.net/orangleliu/article/details/8755461

4.为什么要说这么多编码声明的知识呢?对于咱们要编写的软件有什么用呢?接下来看下面的代码:

rawhtml=urllib.urlopen(url).read()
htmlencoding=chardet.detect(rawhtml)['encoding']
html=rawhtml.decode(htmlencoding,'ignore').encode('utf -8')

(1)其中通过urllib模块,利用urlopen打开具体的一个url地址,然后利用read方法,获取抓取的网页源代码,保存到变量rawhtml中;而rawhtml中就含有中文,至于网页的编码,又会是各种各样;

(2)通过charset模块的detect方法,可以获取原来网页的编码方式,保存到变量htmlencoding中;

(3)知道网页的编码方式后,把rawhtml内容decode(想象成解码)一下,ignore表示忽略其中不规范的东西,之后再encode(想象成编码)成utf-8(我们声明的编码),保存到html中,这样html就是utf-8编码了,后面处理就方便些了。

(4)上面三行代码是我看了很多文章后总结出来的,直接用吧,测试后没有发现出现什么问题,即使不了解编码,也可以保证不会错!

好了,网页代码的编码问题解决了,是不是就可以直接处理了?答案是NO!我们下一篇再讲怎么处理抓到的数据。

(完)

文档信息

手把手教你用python打造网易公开课视频下载软件2-编码相关说明的更多相关文章

  1. 手把手教你用python打造网易公开课视频下载软件1-总述

    写作前面的话:最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html,在线看 ...

  2. 手把手教你用python打造网易公开课视频下载软件4-图形化界面

    上一篇讲解完函数:def getdownLoadInfo (url): 传入公开课的url地址,就可以提取课程的信息,这一篇讲解一下如何编写图像化界面.大概思考一下图像化界面需要的内容: (1)一个标 ...

  3. 手把手教你用python打造网易公开课视频下载软件5-python生成exe程序

    python程序生成exe文件,使用的是py2exe扩展包,下面写下具体的步骤: 第一步:新建conver2exe.py,内容如下: #coding:utf-8 from distutils.core ...

  4. 手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理

    上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标 ...

  5. 【python】10分钟教你用python打造贪吃蛇超详细教程

    10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...

  6. 手把手教你吧Python应用到实际开发 不再空谈悟法☝☝☝

    手把手教你吧Python应用到实际开发 不再空谈悟法☝☝☝ 想用python做机器学习吗,是不是在为从哪开始挠头?这里我假定你是新手,这篇文章里咱们一起用Python完成第一个机器学习项目.我会手把手 ...

  7. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...

  8. 手把手教你吧Python应用到实际开发 不再空谈悟法✍✍✍

    手把手教你吧Python应用到实际开发 不再空谈悟法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...

  9. 手把手教你把Python应用到实际开发 不再空谈语法

    手把手教你把Python应用到实际开发 不再空谈语法 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问 ...

随机推荐

  1. 云端卫士实战录 | Java高级特性之多线程

    <实战录>导语 一转眼作为一名Java开发者已经四年多时间了,说长不长说短不短,对于java的感情还是比较深的,主要嘛毕竟它给了我饭吃.哈哈,开个玩笑.今天我想借此机会来和大家聊聊Java ...

  2. iOS开发-automaticallyAdjustsScrollViewInsets属性

    iOS开发-automaticallyAdjustsScrollViewInsets属性 Available in iOS 7.0 and later. 简单点说就是automaticallyAdju ...

  3. phpStudy 的Apache虚拟主机配置

    放弃了wamp,朋友介绍了phpstudy,不错的一款软件,关键是能自由切换php版本.相关的阿帕奇虚拟主机配置参考:http://www.th7.cn/system/win/201506/10846 ...

  4. windowsphone 的IsolatedStorageSettings存储类型

    IsolatedStorageSettings 存储自定义的对象时关闭程序之后是不会被保存的 只能存储基本类型

  5. mybatis框架中动态SQL的编写

    1.动态SQL:在SQL语句中加入流程控制.比如加入if,foreach等. 重点掌握if语句: 案例1: <update id="updateItem" parameter ...

  6. 控制iframe高度

    1. iframe自适应高度 <iframe id="iframe" src="#" frameborder="0" scrollin ...

  7. Android软件设计---Dumpsys工具使用

    Android中提供的dumpsys工具,用于分析Android性能.Android系统中,列出所有可用的dumpsys指令. 使用dumpsys查看memory信息: shell@aeon6735m ...

  8. java中double变量保留小数问题

    (转载自玄影池扁舟) 做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点 ...

  9. JS-JQuery(JSONP)调用WebService跨域若干技术点

    1.JSONP:JSON With Padding,让网页从别的网域获取信息,也就是跨域获取信息,可以当做是一种“工具”,大多数架构Jquery.EXTjs等都支持. 由于同源策略,一般来说位于 se ...

  10. 天气预报API(三):免费接口测试(“旧编码”)

    说明 我以参考文章为引子,自己测试并扩展,努力寻找更多的气象API... 本文所有测试均以青岛为例. 本文所列接口城市代码(cityid)参数都使用的 "旧编码": 全国城市代码列 ...