首页 理论教育 Python程序设计:爬虫基础

Python程序设计:爬虫基础

时间:2023-11-16 理论教育 版权反馈
【摘要】:“爬虫”抓取数据时必须要有一个目标的URL,它是爬虫获取数据的基本依据。“层叠”是指当在HTML中引用了数个样式文件,并且样式发生冲突时,浏览器能依据层叠顺序处理。图8-4安装requests-html库requests-html的简要使用方法如下。

Python程序设计:爬虫基础

1.统一资源定位符 (UniformResourceLocator, URL)

统一资源定位符,也就是我们说的网址。统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。URL主要包含了三个部分:第一部分是协议 (或称为服务方式);第二部分是存有该资源的主机IP 地址 (有时也包括端口号);第三部分是主机资源的具体地址,如目录和文件名等。例如https://www.sina.com.cn/。

HTTP的全称是HyperTextTransferProtocol,中文名叫作超文本传输协议。HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证高效而准确地传送超文本文档。HTTPS的全称是HyperTextTransferProtocoloverSecure SocketLayer,是HTTP的安全版,简称为HTTPS,现在越来越多的网站都已经向HTTPS方向发展。

“爬虫”抓取数据时必须要有一个目标的URL,它是爬虫获取数据的基本依据。

2.HTML网页结构

HTML (HyperTextMark-upLanguage)即超文本标记语言,超文本是指超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标签组成,用这种语言制作的文件保存的是一个文本文件,文件的扩展名为html或htm,一个HTML文件就是一个网页,HTML文件用编辑器打开显示的是文本,可以用文本的方式编辑它,如果用浏览器打开,浏览器会按照标签描述内容将文件渲染成网页,显示的网页可以从一个网页链接跳转到另一个网页。

一个HTML的基本结构如下:

第一行是文档声明。

第二行的<html>标签和最后一行的</html>定义html文档的整体。

<head>标签和<body>标签是<html>的第一层子元素。<head>和</head>标签里负责对网页进行一些设置及定义标题,设置包括:定义网页的编码格式、外链CSS样式和JavaScript文件等,设置的内容不会显示在网页上,标题的内容会显示在标题栏。<body></body>内定义网页的正文,即网页上显示的内容。

CSS(CascadingStyleSheets)即层叠样式表,是目前唯一的网页页面排版样式标准。“层叠”是指当在HTML中引用了数个样式文件,并且样式发生冲突时,浏览器能依据层叠顺序处理。“样式”指网页中文字大小、颜色、元素间距、排列等格式。在网页中,一般会统一定义整个网页的样式规则,并写入CSS文件中(其后缀为css)。在HTML中,只需要用link标签即可引入写好的CSS文件,这样整个页面就会变得美观。

在HTML中,所有标签定义的内容都是节点。

3.HTTP请求过程

浏览器向网站所在的服务器发送了一个请求,网站服务器接收到这个请求后进行处理和解析,然后返回对应的响应,接着传回给浏览器。响应里包含了页面的源代码等内容,浏览器再对其进行解析,便将网页呈现了出来。

请求由客户端向服务端发出,常见的请求方法有两种:GET 和POST。在浏览器中直接输入URL并回车,这便发起了一个GET 请求,请求的参数会直接包含到URL里,GET 请求返回页面内容。服务器收到请求后会响应,并由服务端返回给客户端相关响应的内容。

4.选择器

在CSS中,使用CSS选择器来定位节点。例如,DIV 节点的ID 为container,那么就可以表示为#container,其中#开头代表选择ID,其后紧跟ID 的名称。另外,如果我们想选择class为wrapper的节点,便可以使用.wrapper,这里以点 (.)开头代表选择class,其后紧跟class的名称。另外,还有一种选择方式,那就是根据标签名筛选,例如想选择二级标题,直接用h2即可。这是最常用的3种表示,分别是根据ID、class、标签名筛选。CSS选择器还有更多的语法规则,请参考相关手册。

5.requests-html使用方法(www.xing528.com)

Python3常用的 “爬虫”库有:requests、Selenium、beautifulsoup4、pyquery和scrapy 等,requests-html 只支持Python3.6 及更新的版本,是基于现有的框架PyQuery、Requests等库进行了二次封装,用于解析HTML 文档,使用更简单,在爬取网页等方面非常方便。

requests-html使用前需要安装,使用WIN+R 打开运行窗口,输入cmd,打开进入cmd窗口,如图8-4所示。在命令行输入:pipinstallrequests-html,自动安装完即可使用。

图8-4 安装requests-html库

requests-html的简要使用方法如下。

(1)发送get请求。

(2)按原样获取页面上所有链接的列表并返回一个列表。

(3)通过CSS选择器选取一个Element对象。

find()可以接收两个参数,第一个参数CSS选择器可以是class名称或ID,第二个参数first=True时,只选取第一条数据。

获取一个元素对象内的文本内容:about.text

【例8-2】获取requests-html的首页https://github.com/kennethreitz/requestshtml的所有超链接地址。

程序如下:

程序运行部分结果如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈