企业门户网站模板分享,网站建设公司行情,电商公司名字大全,采购信息网前言#xff1a;在上一节从零开始的Python爬虫教程#xff08;零#xff09;:粗识HTML结构中#xff0c;粗略给大家介绍了一下HTML文档#xff0c;是为了在接下来的教程中让大家更容易理解和掌握。在接下来的教程中#xff0c;需要大家提前安装python3.x版本#xff0c;…前言在上一节从零开始的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
供大家下载测试。