爬虫

爬虫又叫网络蜘蛛
本质上就是获取网页并提取和保存信息的自动化程序

爬虫思路

一、获取网页

第一步获取网页,也就是获取网页的源代码。把源代码获取下来,然后从中提取想要的信息。
实际上浏览器接受到的响应包信息也是网页源代码,但浏览器根究HTML标准将源代码解析出来了,这才在我们面前呈现出有排版的网页。
就和输入URL后,浏览器会自动解析成URL编码格式一样,burp抓包或者使用脚本的话设置URL就需要自己直接用已经URL编码后的URL
爬虫想做的事和浏览器类似,只不过是使用python去做内容解析

流程

获取网页源代码步骤:构造一个HTTP或HTTPS请求给服务器-》接收响应的源代码信息-》处理源代码、筛选 body 信息
python有许多库可实现这些操作,接收到响应信息后只需要解析数据结构中的 body 部分就可以得到网页的源代码

二、提取信息

提取信息的作用是让杂乱的源代码数据经过处理变得有条理、清晰,方便后续处理和分析数据。
获取到网页源代码后,需要从中提取到想要的信息,通用方法是使用正则表达式来实现,但正则表达式缺点就是构造起来比较复杂且容易出错。
网页结构有一定规律,所以还有一些根据网页节点属性、CSS选择器或者Xpath来提取网页信息的第三方库,如Beautiful Soup、pyquery、lxml等。使用这些库,可以高速的提取网页信息,如节点的属性、文本值等

三、保存数据

提取完数据,一半会保存起来,如保存到txt、json、xlsx等文件中,或保存到数据库中,还可以保存到远程服务器

四、自动化程序

爬虫替代人来完成操作,党数据量巨大时,手工提取信息太累,借助程序自动化会省许多力,自动化可以在抓取过程中进行各种异常处理、错误重试等操作

爬虫能爬什么?

常规网页是HTML,最常见的就是抓HTML源代码
还有Json字符串
二进制数据如图片、视频、音频等
各种拓展名的文件,如CSS、JS和配置文件,只要浏览器可以访问到就能抓取。