「关注我,和我一起放下灵魂,让灵魂去搬砖。」
作者:一叶
介绍:放不下灵魂的搬砖者
Python爬虫-准备工作
Python版本3.8.0,开发工具:Pycharm
爬虫流程:
1. 获取网页url(网址)
url:
统一资源定位符
,是要爬取目标网页的地址,例如豆瓣电影:https://movie.douban.com/
2. 发出请求,获得响应
用户在浏览器输入网址
之后,经过DNS 服务器
,找到服务器主机,向服务器发出访问请求
,服务器经过解析之后,发送给用户的浏览器HTML、JS、CSS
等文件,浏览器解析
出来呈现给用户。
浏览器没有信息,
只负责发送请求和得到响应
。服务器中存储大量信息,通过响应请求将数据返回给浏览器进行显示。
大部分服务器
只能响应浏览器的请求
,所以通过 Python 编写的爬虫脚本,如果没有伪装成浏览器,是请求不到数据的。
3. 提取所需数据
服务器返回给浏览器的数据包括HTML 片段、XML 文档、JSON 文件
等数据。针对不同数据选择不同的方式进行数据提取。
常用解析方式有:
-
re 正则表达式
;-
html.parser
;-
BeautifulSoup
;-
lxml(xpath技术)
;- 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,我们不只是说说而已