静态网页源码的获取:

以获取百度首页的html源代码为例,(ps:后来发现百度首页并不是静态的,好在不影响功能说明)。

(1)方法一:使用requests

import requests

#查询的url地址

url = 'http://www.baidu.com'

#使用get方法获得url的内容

response = requests.get(url)

#由于response的格式为requests.models.Response无法直接print,用text转成str格式

#若用于下载图片、视频、音频等多媒体格式,应用response.content转成二进制的bytes格式

html = response.text

#打印网页

print(html)

我们来看下输出的结果,是典型的html的格式。但是其中有一些乱码,这是怎么回事呢。

我们看下requests的官方文档。

原来requests会对文本编码的格式进行推测,按我们打印到的html页面可以看到,charset=utf-8,那么应该就是utf-8编码了吧。我们来看一下:

在获取到reponse后,我们先不对他进行转码,先看一下Requests是怎么对他自动编码的。

import requests

url = 'http://www.baidu.com'

response = requests.get(url)

print(response.encoding)

ISO-8859-1

显示结果为:ISO-8859-1。和想的不太一样呀,原来requests把我们得到的reponse编码成ISO-8859-1了,我们采用text的方法,实际是用ISO-8859-1进行解码,但从网页源代码我们知道utf-8才是它正确的编码,因此程序需要小小的修改一下。

import requests

#查询的url地址

url = 'http://www.baidu.com'

#使用get方法获得url的内容

response = requests.get(url)

#修改为utf-8编码格式

response.encoding = 'utf-8'

#由于response的格式为requests.models.Response无法直接print,用text转成str格式

#若用于下载图片、视频、音频等多媒体格式,应用response.content转成二进制的bytes格式

html = response.text

#打印网页

print(html)

这回看一下输出结果,这回看上去好多了吧!

(2)方法二:用urllib模块获取:

import urllib.request

#查询的url地址

url = 'http://www.baidu.com'

#使用urllib.request模块的urlopen方法获得url的内容,并用read方法读取,结果为二进制格式

response = urllib.request.urlopen(url).read()

#将二进制格式用utf-8的方法解码为str(unicode)

html = response.decode('utf-8')

#打印网页

print(html)

(3)小结:

`

大多数情况使用requests的方法会比urllib方便得多,因为requests整合了urllib中各种函数的功能,还有自带了cookie的功能,代码也相对整洁漂亮。

网络上关于python的爬虫教程,大多还是采用python2.7,使用的是urllib和urllib2的模块。而在python3中,用urllib整合了前两个模块。比如urllib2.urlopen可以用urllib.request.urlopen代替,比如urllib2.Request可以用urllib.request. Request代替,比如urllib.urlencode可以用urllib.parse.urlencode代替。在学习python3的过程中,也是能作为参考的。

在后面的笔记中,我将对requests和urllib的方法进行对比。

python显示静态html文件,python3的爬虫笔记1——静态网页获取相关推荐

  1. Python3.X 爬虫实战(静态下载器与解析器)

    [工匠若水 http://blog.csdn.net/yanbober 未经允许严禁转载,请尊重作者劳动成果.私信联系我] 1 背景 这两天比较忙,各种锅锅接,忙里偷闲完结这一篇吧.在我们在上一篇&l ...

  2. Python3.x爬虫教程:爬网页、爬图片、自己主动登录

    林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文将使用Python3.4爬网页.爬图片.自己主动登录.并对HTTP协议做了一个简单 ...

  3. Python3.x爬虫教程:爬网页、爬图片、自动登录

    林炳文Evankaka原创作品.转载请注明出处 http://blog.csdn.net/evankaka 摘要:本文将使用Python3.4爬网页.爬图片.自动登录.并对HTTP协议做了一个简单的介 ...

  4. python的程序异常类型,Python3.4学习笔记之类型判断,异常处理,终止程序操作小结...

    本文实例讲述了Python3.4类型判断,异常处理,终止程序操作.分享给大家供大家参考,具体如下: python3.4学习笔记 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 ...

  5. python怎么写入到文件中_Python学习笔记之将数据写入到文件中

    原博文 2019-10-29 16:04 − 10-3 访客:编写一个程序,提示用户输入其名字:用户作出响应后,将其名字写入到文件guest.txt 中. 编写Python代码: 1 username ...

  6. python教程app 小米应用商店_Python爬虫过程解析之多线程获取小米应用商店数据...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于IT共享之家 ,作者IT共享者 前言 小米应用商店给用户发现最好的安卓应用和游戏,安 ...

  7. python怎么读取中文文件-Python3 解决读取中文文件txt编码的问题

    问题描述 尝试用Python写一个Wordcloud的时候,出现了编码问题. 照着网上某些博客的说法添添改改后,结果是变成了"UnicodeDecodeError: "utf-8' ...

  8. python爬取淘宝商品做数据挖掘_Python 3爬虫 数据清洗与可视化实战 Python数据抓取技术 python3网络爬虫教程书籍 运用Python工具获取电商平台页面数据挖掘书籍...

    A8 书    名:Python 3爬虫 数据清洗与可视化实战 作 译 者:零一,韩要宾,黄园园 出版时间:2018-03 千 字 数:200 版    次:01-01 页    数:212 开   ...

  9. python怎么读取中文文件-Python3 中文文件读写方法

    字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(en ...

最新文章

  1. mysql 数据库 xtrabackup (完全备份恢复,恢复后重启失败总结)
  2. python快速入门第三版-Python3快速入门
  3. 四周第四次课(1月5日) 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具...
  4. java反射的优化_请问Java反射的性能为什么比直接调用慢一个数量级左右?
  5. 2.2.1 计算机网络之传输介质(双绞线、同轴电缆、光纤、无线电缆、微波、激光、红外线)
  6. python 广告拦截_Python如何在抓取时欺骗反广告块过滤器?
  7. 4 指针运算_C++用指针访问数组元素(学习笔记:第6章 08)
  8. 爬取IMDBTOP250
  9. 安装wordcloud_COVID19数据分析实战:WordCloud 词云分析
  10. Swift - 使用NSURLSession同步获取数据(通过添加信号量)
  11. 定时任务getScheduler
  12. 心情随笔(三):注入新的血液
  13. [python] 将一个序列的排序方式扩展到其他序列
  14. java wait() notify_Java的wait(), notify()和notifyAll()使用小结
  15. 按键精灵手机助手连接mumu模拟器的方法,适用于任何模拟器连接按键精灵手机助手
  16. Python实现电子词典(图形界面)
  17. 工业以太网通讯Profinet协议详解
  18. 回忆我的过去一年2020年考研以及研究生规划
  19. scrapy 动态网页处理——爬取鼠绘海贼王最新漫画
  20. Edge与Safari双向同步书签

热门文章

  1. Mac动作冒险游戏:尘埃幸福的轨迹 for Mac
  2. 修道士和野人java_修道士与野人问题(BFS广度搜索)
  3. 360lib投影格式介绍(二) - 立方体贴图投影(CMP / ACP / EAC / SSP / TSP)
  4. 基于C的PCM音频数据的读取、处理与写入(一)
  5. 制作一个小的彩票系统
  6. sdk编译文件报错conflicting types for ‘kill‘
  7. 推荐开发工具系列之--PyF5(自动刷新)
  8. 新闻学计算机报哪一项,2017年新闻学考研常考名词解释汇总(一)
  9. Linux系统运维之keepalived的工作原理和裂脑
  10. 笔记---怪诞行为学