前言:在上一节从零开始的Python爬虫教程(零):粗识HTML结构中,粗略给大家介绍了一下HTML文档,是为了在接下来的教程中让大家更容易理解和掌握。在接下来的教程中,需要大家提前安装python3.x版本,大家不必拘泥于具体的版本,不管安装的是3.0还是最新的3.7,都不影响接下来的操作。至于安装教程,这里就不过多赘述了,读者可自行搜索到详细的教程。

未安装requests库的需要大家安装一下requests库,可以用pip安装,在cmd中执行:

pip install requests

使用pip安装requests库

安装成功之后我们可以在Python自带的IDE中导入requests库测试一下是否可用:

可以正常导入

我们平时在浏览器中浏览网站时,实际上是浏览器向网站所在服务器发送HTTP请求下载HTML文档到本地,然后再经过浏览器的解释、渲染,形成了我们所见的精美的页面,而原始的HTML文档实际上是这样的:

原始文档

而编写一个爬虫,首先最基本的便是向目标服务器发送HTTP请求下载HTML文档。那么,如何用Python下载到HTML文档呢?我们仍以上一节中的百度百科为例:

第一步:使用requests.get(url)向目标服务器发起GET请求以下载HTML文档

复制百科的网址填入

回车后将会发起请求:结果如下

requests库请求出错了

阅读报错信息,它告诉我们,是因为目标服务器做了过多的网页重定向,导致请求失败报错。这里我们暂时不谈何为重定向,只说如何解决当前的问题。而我猜测,是由于百度服务器的反爬策略。何为反爬呢?就是服务器检测到该请求不是来自正常的浏览器,而是来自机器人或其他,因此拒绝你的请求或作其他处理。而爬虫归根结底就是模拟浏览器发出请求,然后获取信息。

那么,如何解决当前的问题呢?在HTTP请求头中加一个“User-Agent”,如下:

headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'}

未报错,请求成功

可以看到,这次没有再报错了。

这里,我们将requests.get(URL)的执行结果赋值给了response变量,而获取到的数据保存到了该结果的content属性中,我们可以通过输出content看一下获取到的HTML文档,执行如下代码:

print(response.content)

由于文档较大,执行该语句时,Python自带的IDE可能会卡死,所以我们就输出前200个字符看一下吧。

输出结果

为了能够正常输出,我们使用专业的Python IDE测试一下:

代码和输出

输出结果

但是我们发现似乎获取到的HTML文档乱七八糟的,一个中文字符都没见到!别慌,这是因为还没有对文档进行解码,所以我们看不懂。

解码:print(response.content.decode('UTF8'))

输出解码后的结果

GOOD!可以看到我们已经能正常阅读HTML文档了!

本节就到这里啦,下节教大家如何从HTML文档中过滤筛选出我们需要的信息。

本节代码下载地址:github.com/TinyKoko/little-case/blob/master/从零开始的Python爬虫教程/chapter01.py

供大家下载测试。

python读取html_从零开始的Python爬虫教程(一):获取HTML文档相关推荐

  1. python读取word中的文字格式_利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等...

    前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...

  2. python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门

    原标题:Python零基础从零开始学习Python十分钟快速入门 学习Python的,都知道Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python是一种动态解释型的 ...

  3. python爬虫系列之下载在线文档Excel(腾讯)

    python爬虫系列之腾讯文档Excel数据 一.简介 二.实现步骤 1. 数据准备 2. 获取当前用户nowUserIndex 3.创建导出任务 4. 检查数据准备进度,并下载 三.完整代码 四.效 ...

  4. python读取word的方法,Python读取Word(.docx)正文信息的方法

    Python读取Word(.docx)正文信息的方法 本文介绍用Python简单读取*.docx文件信息,一些python-word库就是对这种方法的扩展. 介绍分两部分: Word(*.docx)文 ...

  5. Python爬虫 —— 使用BeautifulSoup4解析HTML文档

    Python爬虫 -- 使用BeautifulSoup4解析HTML文档 目录 Python爬虫 -- 使用BeautifulSoup4解析HTML文档 1.BeautifulSoup4简介 1.1 ...

  6. Python实现识别html文本内容并截图放入word文档

    需求: excel文件中存放了很多html标签文本,需要把文本内容在浏览器中打开将内容截图,放入doc文档保存. 手动过程 需要逐条手动处理 1. 从excel表格中复制标签文本内容 <div& ...

  7. python word中表格字体设置_利用Python-docx 读写 Word 文档中的正文、表格、段落、字体样式等...

    前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...

  8. Python获取docx文档里的批注

    注意:该作者博客已迁移至https://buxianshan.xyz 使用Python-docx库可以很方便的处理docx文件(官方文档) 但是有些隐含的信息Python-docx库好像无法读取,比如 ...

  9. python xpath提取转码_python-xpath获取html文档的部分内容

    有些时候我在们需要的用正则提取出html中某一个部分的文字内容,如图: 获取dd部分的html文档,我们要通过它的一个属性去确定他的位置才可以拿到他这个部分我们可以看到他的这个属性class='row ...

最新文章

  1. Zonbu-售价 99 美元的袖珍电脑
  2. php fetchall 返回值为0_PHP实现延迟执行程序
  3. CPU主频频率越高,手机运行速度就越快吗?
  4. php mysql 测试页_mysql+php分页类(已测)
  5. 数组索引必须为正整数或逻辑值_Office 365函数新世界——动态数组
  6. BugkuCTF-MISC题Pokergame
  7. 串口(USART)通信-串口通讯协议简介
  8. 弱密码校验_TomCat8 弱密码上传getshell
  9. 【刷算法】LeetCode- 阶乘后的零
  10. _2020年10个最好的Linux发行版本
  11. scipy求极值代码
  12. 太极计算机股份有限公司面试经历
  13. 梵曦诺(莫七七)店铺案例分析
  14. 数据库入门理论知识介绍以及编译安装MySql
  15. 平安科技2017笔试题目
  16. 55ide游戏引擎教程2:新建项目Hello World
  17. 江苏无锡14岁女孩被推荐上北大(图)
  18. 爬取微博热点评论用户ID--简易版本
  19. keyboard speed
  20. 插值查找(在数据是差值排序的时候比二分快)

热门文章

  1. http://jackielieu.blog.51cto.com/5586910/1161944
  2. 大一c语言操作题期末考答案,大一期末考试c语言操作题答案
  3. mongodb添加多条数据_分析了一万多条拼车数据,看看北上广深的各位都回哪过年...
  4. linux db2 cached太大,cache
  5. c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归)
  6. java菜单如何点解_【Java】详解菜单组件
  7. 中点坐标公式 矩形_压轴题必备|中考数学“动点坐标”问题,这个万能解法人人都能学会!...
  8. [蓝桥杯][算法提高VIP]Sharing Chocolate(状压dp记忆化搜索)
  9. [蓝桥杯][算法提高VIP]分苹果(差分||树状数组)
  10. Perform the Combo CodeForces - 1311C(字符串反转+树状数组)