ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【08】爬虫

2022-04-16 01:04:42  阅读:154  来源: 互联网

标签:编码 标签 08 爬虫 gbk HTML 内联 response


1、相关包准备

  • win10打开cmd,直接pip install 包名,安装requestsbeautifulsoup4prettytable

2、html基础准备

-详见链接https://www.jianshu.com/p/256296abefdc

  • HTML标签主要分为单标签和双标签两类。单标签只有开始标签,所以需要在开始的同时关闭,例如meta标签,用于定义Web网页的基本信息。以下meta标签指定了网页使用UTF-8字符集,通过标签的属性值进行设定,即将属性名和属性值都写在标签内部。
  • h1至h6,分别表示一级标题至六级标题,标题文字会依次减小
  • 再介绍两个新的概念:块级标签和内联标签。块级标签单独占据一行,其后面的标签会在下一行出现,而多个内联标签则会显示在同一行中,直到总宽度超过了浏览器宽度才换行。之前介绍的h1至h6、p都是块级标签,而a、img则是内联标签。浏览器在渲染HTML页面时会遵循默认的文档流,从上往下依次显示每个HTML标签,对于块级标签则独占一行,对于内联标签则放置在同一行,直到总宽度超过浏览器宽度才换行。
  • 可以在HTML标签之间或者p等标签内容中添加br,用于添加空白行或换行
  • div和span分别属于块级标签和内联标签,都可以用作其他HTML标签或页面文本的容器。它们本身没有具体的语义,仅作为其他内容的容器,从而将Web页面更加结构化地组织起来。我们在设计网页时,往往会将页面划分为多个区域,例如导航栏、侧边栏、第一部分、第二部分、第三部分、底栏等,如果将全部内容都直接写在body的下一级中,则会给开发带来很大的不便。相比之下,合理使用div勾勒出网页内容的结构和层次,可以使代码编写和阅读变得更加清晰明朗。
  • 使用table标签可以定义表格,用tr表示表格中的每一行,用td表示每一行中的单元格,用th表示表头行中的单元格。以下是一个简单的例子,当然可以通过更复杂的语法实现合并单元格等效果,在我们掌握了CSS之后,也可以进一步美化表格样式,使得表格看起来更美观。
  • 使用ul和ol定义列表,分别对应无序列表和有序列表,用于展示多个并列项,每一项用li定义

3、编解码

以网页使用gbk编码,如何正常显示获取的数据为例,大致过程如下所示。

  • 网页使用gbk编码,所以我们爬虫抓取的数据是原始文字,经过gbk编码得到的二进制数据;
  • 而python会使用默认的ISO-8859-1来解码二进制数据,所以显示的文字会乱码;
  • 此时想要正确显示文字,需要先对解码后的字符串,进行ISO-8859-1格式的编码,还原成服务端的二进制数据,再用gbk格式进行解码,就可以得到正常显示的文字了
import requests

url='https://www.qbiqu.com/0_1/'

response=requests.get(url)
print(response.text.encode(response.encoding).decode('gbk'))        #先对字符串进行编码还原成原始二进制数据,再用gbk解码得到正常文字,其中response.encoding为python默认编码,response.apparent_encoding是通过内容分析出的编码,使用response.apparent_encoding也行,代码对不同编码格式的网站兼容性更强

标签:编码,标签,08,爬虫,gbk,HTML,内联,response
来源: https://www.cnblogs.com/ua-21/p/16023204.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有