「关注我,和我一起放下灵魂,让灵魂去搬砖。」


小白学爬虫系列-基础-准备工作_数据

作者:一叶

介绍:放不下灵魂的搬砖者


Python爬虫-准备工作

Python版本3.8.0,开发工具:Pycharm


爬虫流程:

1. 获取网页url(网址)

url:​​统一资源定位符​​,是要爬取目标网页的地址,例如豆瓣电影:https://movie.douban.com/

2. 发出请求,获得响应

用户在浏览器​​输入网址​​​之后,经过​​DNS 服务器​​​,找到服务器主机,向服务器​​发出访问请求​​​,服务器经过解析之后,发送给用户的浏览器​​HTML、JS、CSS​​​等文件,浏览器​​解析​​出来呈现给用户。

浏览器没有信息,​​只负责发送请求和得到响应​​。服务器中存储大量信息,通过响应请求将数据返回给浏览器进行显示。


大部分服务器​​只能响应浏览器的请求​​,所以通过 Python 编写的爬虫脚本,如果没有伪装成浏览器,是请求不到数据的。

3. 提取所需数据

服务器返回给浏览器的数据包括​​HTML 片段、XML 文档、JSON 文件​​等数据。针对不同数据选择不同的方式进行数据提取。

常用解析方式有:


  1. ​re 正则表达式​​;
  2. ​html.parser​​;
  3. ​BeautifulSoup​​;
  4. ​lxml(xpath技术)​​;
  5. ElementTree(解析xml); 

4. 保存数据

一般对​​规整化的数据​​直接保存成文件,放在本地。当然,也可以通过连接数据库保存在数据库中



你还需要了解

1. 爬虫是什么?

爬虫,即网络爬虫。当你​​输入网址或者程序解析到新的网址​​​,这个网址就是一个通道,爬虫通过这个通道到达新的地址,并通过编程获取新地址的数据。说直接点:​​爬虫就是通过编程从网上获取数据​​。


2. 什么是浏览器请求?

例如,当你在登录一个网站时,需要​​输入用户名和密码​​​,此时会有两种数据请求方式:​​GET 方式​​​和​​POST 方式​​。

GET方式:

​直接将参数写在网址中​​​,构建一个​​带参数的url​​。例如 https://www.wz.com?username='zhiqiuxiaomeng'&passwd='123456',将 username 和 passwd 直接带入参数中。

POST方式:

​将参数保存成一个变量​​,在请求过程中将变量发送给服务器。例如 values = {"username":"zhiqiuxiaomeng","passwd":"123456"},在发送请求的时候将 values 一起发送给服务器。


3. 什么是服务器响应?

服务器在​​接收​​到浏览器请求后,对请求进行​​验证​​,并​​返回​​相应的验证结果给浏览器,浏览器对返回结果​​解析​​,呈现给用户。


服务器返回结果包括两种:一种是​​返回数据​​,在浏览器端进行刷新填充;一种是​​返回一个新的页面​​,在浏览器端进行跳转。数据类型包括 html、css、json 等。


4. 什么是html、CSS、jsp、xml?

html 是​​超文本标记语言​​,通俗的说就是你现在看到的这个网页的源代码,不同的浏览器都会对这个 html 文本解析,得到一个网页呈现在浏览器中。


css 叫​​层叠样式表​​,就来美化 html 页面的,现在主流的是配合 DIV 一起排版。


jsp 是一种​​服务器编程技术​​,主要用 java 写服务器页面,这些页面支持 java 语义的标记,到时候都会通过http传输到用户的浏览器解析为标准的 html 页面。


xml 为​​可扩展的标记语言​​,就是可以自定义 DOM 节点,现在用 XML 用来支持异步数据传输较多,比如JSON,很多原生的 API 也都是 XML 格式的

在浏览器解析的网页中,虽然用户看到的​​都是中文(或英文)​​​,但实际编码不尽相同,有​​utf-8编码​​​,有​​gbk编码​​​,可能还会有 ​​iso8859-1 编码​​。


5. 什么是ascll、unicode?

ascll 编码:使用​​一个字节​​进行编码(因为英文和数字一个字节足够)


unicode 编码:使用​​两个字节​​进行编码(因为中文至少需要两个字节)


utf-8 编码:​​可变长编码​​,英文通常是1个字节,汉字是三个及以上(生僻字)字节(节省存储空间)

注:utf-8 编码是unicode 编码的实现方式之一


6. 什么是 utf-8、gb2312、gbk、iso8859-1 ?

GB2312 是​​国家制定的汉字编码标准​​,使用​​双子节​​进行编码,共收入6763个汉字和682个非汉字图形字符。


GBK 即​​对国标编码的扩展​​,在​​GB2312 的基础上​​进行扩展形成的,使用​​双子节编码​​方式,共收入21003个汉字,从而大大满足了汉字使用的需要。


ISO-8859-1 编码是​​单字节编码​​ ,向下兼容ASCII,是许多欧洲国家使用的编码标准


准备工作大概就这么些,你们准备好了吗?


Python系列

Python系列会持续更新,从基础入门到进阶技巧,从编程语法到项目实战。若您在阅读的过程中发现文章存在错误,烦请指正,非常感谢;若您在阅读的过程中能有所收获,欢迎一起分享交流。

如果你也想和我一起学习Python,关注我吧!

学习Python,我们不只是说说而已


小白学爬虫系列-基础-准备工作_html_02