爬虫工作原理
前言 互联网,又称网际网络,互联网始于1969年美国的阿帕网,是网络与网络之间所串联成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。网站(Website)是指在 因特网 上根据一定的规则,使用 HTML ( 标准通用标记语言 下的一个应用)等工具制作的用于展示特定内容相关 网页 的集合。网站是一种 沟通工具 ,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的 网络服务 。人们可以通过 网页浏览器 来访问网站,获取自己需要的资讯或者享受 网络 服务。 简单来说,要从互联网中获取信息,我们首先通过浏览器进行访问某个站点,站点网页的HTML、JavaScript、CSS代码返回给浏览器,这些代码经过解析、渲染后,将多姿多彩的网页呈现在我们眼前。
一、什么是爬虫? 如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点(也就是互联网上的站点),而爬虫就是一只蜘蛛,沿着网络抓取自己的猎物(数据)。 爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序; 技术层面:通过程序模拟浏览器请求站点的行为,把站点返回的数据爬到本地,进而提取自己需要的数据,存放到文件或数据库当中,进行使用。
二、爬虫的基本流程 用户获取网络数据的方式: 方式1:通过PC端、移动端浏览器提交请求--->下载网页代码--->解析成页面 方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中 爬虫要做的就是方式2,模拟用户行为,进行信息获取。 1、发起请求 使用http库向目标站点发起请求,即发送一个Request Request包含:请求头、请求体等 Request:只能模拟发送一个请求,并不能解析执行JS 和CSS 代码 2、获取响应内容 如果服务器能正常响应,则会得到一个Response Response包含:html,json,图片,视频等 3、解析内容 解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等 解析json数据:json模块 解析二进制数据:以wb的方式写入文件 4、保存数据 数据库(MySQL,Mongdb、Redis) 文件
三、http协议:请求与响应 request:用户将信息通过浏览器发送到服务器 response:服务器接收用户请求后,分析请求信息,返回数据 ps:浏览器接收response后,解析后把内容呈现给用户,而爬虫程序则是在接收response后,提取其中有用的信息。
四、请求:request 1、请求方式 GET、POST
2、请求的URL 请求的数据地址
3、请求头 User-agent:请求来源客户端配置,模拟浏览器,作为用户操作 cookies:用来保存登录信息 请求头需要注意的参数: (1)referrer:访问源哪里来 (2)User-agent:访问的浏览器 (3)cookie
4、请求体 get方式:请求体内容在URL参数 post方式:format data
五、响应:response 1、响应状态码 200:代表成功 301:代表跳转 404:文件不存在 403:无权限访问 502:服务器错误
2、respone header 响应头需要注意的参数: (1)Set-Cookie:BDSVRTM=0; path=/:可能有多个,是来告诉浏览器,把cookie保存下来 (2)Content-Location:服务端响应头中包含Location返回浏览器之后,浏览器就会重新访问另一个页面 3、preview就是网页源代码 JSON数据 如网页html,图片 二进制数据等
六、总结 1、爬虫流程 爬取 =》 解析 =》 存储
2、爬虫所需工具 请求库:requests,selenium(可以驱动浏览器解析渲染CSS和JS,但有性能劣势(有用没用的网页都会加载);) 解析库:正则(re),beautifulsoup,pyquery 存储库:文件,数据库 3、简单例子 不冷笑话
爬虫工作原理
前言 互联网,又称网际网络,互联网始于1969年美国的阿帕网,是网络与网络之间所串联成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。网站(Website)是指在 因特网 上根据一定的规则,使用 HTML ( 标准通用标记语言 下的一个应用)等工具制作的用于展示特定内容相关 网页 的集合。网站是一种 沟通工具 ,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的 网络服务 。人们可以通过 网页浏览器 来访问网站,获取自己需要的资讯或者享受 网络 服务。 简单来说,要从互联网中获取信息,我们首先通过浏览器进行访问某个站点,站点网页的HTML、JavaScript、CSS代码返回给浏览器,这些代码经过解析、渲染后,将多姿多彩的网页呈现在我们眼前。
一、什么是爬虫? 如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点(也就是互联网上的站点),而爬虫就是一只蜘蛛,沿着网络抓取自己的猎物(数据)。 爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序; 技术层面:通过程序模拟浏览器请求站点的行为,把站点返回的数据爬到本地,进而提取自己需要的数据,存放到文件或数据库当中,进行使用。
二、爬虫的基本流程 用户获取网络数据的方式: 方式1:通过PC端、移动端浏览器提交请求--->下载网页代码--->解析成页面 方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中 爬虫要做的就是方式2,模拟用户行为,进行信息获取。 1、发起请求 使用http库向目标站点发起请求,即发送一个Request Request包含:请求头、请求体等 Request:只能模拟发送一个请求,并不能解析执行JS 和CSS 代码 2、获取响应内容 如果服务器能正常响应,则会得到一个Response Response包含:html,json,图片,视频等 3、解析内容 解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等 解析json数据:json模块 解析二进制数据:以wb的方式写入文件 4、保存数据 数据库(MySQL,Mongdb、Redis) 文件
三、http协议:请求与响应 request:用户将信息通过浏览器发送到服务器 response:服务器接收用户请求后,分析请求信息,返回数据 ps:浏览器接收response后,解析后把内容呈现给用户,而爬虫程序则是在接收response后,提取其中有用的信息。
四、请求:request 1、请求方式 GET、POST
2、请求的URL 请求的数据地址
3、请求头 User-agent:请求来源客户端配置,模拟浏览器,作为用户操作 cookies:用来保存登录信息 请求头需要注意的参数: (1)referrer:访问源哪里来 (2)User-agent:访问的浏览器 (3)cookie
4、请求体 get方式:请求体内容在URL参数 post方式:format data
五、响应:response 1、响应状态码 200:代表成功 301:代表跳转 404:文件不存在 403:无权限访问 502:服务器错误
2、respone header 响应头需要注意的参数: (1)Set-Cookie:BDSVRTM=0; path=/:可能有多个,是来告诉浏览器,把cookie保存下来 (2)Content-Location:服务端响应头中包含Location返回浏览器之后,浏览器就会重新访问另一个页面 3、preview就是网页源代码 JSON数据 如网页html,图片 二进制数据等
六、总结 1、爬虫流程 爬取 =》 解析 =》 存储
2、爬虫所需工具 请求库:requests,selenium(可以驱动浏览器解析渲染CSS和JS,但有性能劣势(有用没用的网页都会加载);) 解析库:正则(re),beautifulsoup,pyquery 存储库:文件,数据库 3、简单例子 不冷笑话