php 爬虫抓取网页数据(网络爬虫程序高效,编程结构好..(一))
优采云 发布时间: 2022-01-03 10:24php 爬虫抓取网页数据(网络爬虫程序高效,编程结构好..(一))
网络爬虫是一个程序,主要用于搜索引擎。它读取一个网站的所有内容和链接,建立相关的全文索引到数据库,然后跳转到另一个网站。它看起来像一只大蜘蛛。
当人们在互联网上搜索关键字(例如google)时,他们实际上是在比较数据库中的内容,以找出与用户匹配的内容。网络爬虫的好坏决定了搜索引擎的能力,比如google搜索引擎明显优于百度,因为它的网络爬虫程序效率高,编程结构好。 一、什么是爬虫
首先简单了解一下爬虫。也就是请求网站,提取自己需要的数据的过程。至于怎么爬,怎么爬,就是后面要学的内容了,暂时不用讲了。通过我们的程序,我们可以代替我们向服务器发送请求,然后批量下载大量数据。
二、爬取的基本过程
Initiate a request:通过URL向服务器发起请求请求。请求可以收录额外的标头信息。
获取响应内容:如果服务器正常响应,那么我们会收到一个响应,就是我们请求的网页的内容,可能收录HTML、Json字符串或二进制数据(视频、图片)等。
解析内容:如果是HTML代码,可以通过网页解析器解析,如果是Json数据,可以转换成Json对象进行分析,如果是二进制数据,可以保存到一个文件以供进一步处理。
保存数据:可以保存到本地文件或数据库(MySQL、Redis、Mongodb等)
三、请求收录什么
当我们通过浏览器向服务器发送请求时,请求中收录哪些信息?我们可以用chrome的开发者工具来讲解(如果不知道怎么用,看这个说明)。
请求方式:最常用的请求方式包括get请求和post请求。开发中最常见的 post 请求是通过表单提交。从用户的角度来看,最常见的就是登录验证。当你需要输入一些信息进行登录时,这个请求就是一个post请求。
URL Uniform Resource Locator:URL、图片、视频等都可以通过url来定义。当我们请求一个网页时,我们可以查看网络标签。第一个通常是一个文档,表示这个文档是没有外部图片、css、js等渲染出来的html代码,下面我们会看到这个文档到一系列的jpg、js等,这个又是请求并再次由浏览器根据html代码,请求的地址为html文档中图片、js等的url地址
request headers:请求头,包括本次请求的请求类型、cookie信息、浏览器类型等,这个请求头在我们抓取网页的时候还是很有用的。服务器将通过解析请求头来查看信息,并确定该请求是一个合法的请求。所以当我们假装浏览器通过程序发出请求时,我们可以设置请求头信息。
Request body:post请求会将用户信息打包在form-data中进行提交,所以相比get请求,post请求的headers标签内容会收录更多的Form Data信息包。 get请求可以简单理解为普通的搜索回车,信息会每隔一段时间添加到url的末尾。
四、响应收录什么
响应状态:可以通过Headers中的General查看状态码。 200表示成功、301重定向、404页面未找到、502服务器错误等
响应头:包括内容类型、cookie信息等
响应体:请求的目的是获取响应体,包括html代码、Json、二进制数据。
五、简单请求演示
通过 Python 的请求库发出网页请求:
输出结果是尚未渲染的网页代码,即请求体的内容。可以在响应头中查看信息:
查看状态代码:
您也可以在请求信息中添加请求头:
获取图片(百度标志):
六、如何解决 JavaScript 渲染问题
使用 Selenium 网络驱动程序
输入print(driver.page_source),可以看到这次的代码是渲染后的代码。
【备注】chrome浏览器的使用
Elements 标签显示显示的 HTML 代码。
在网络标签下有浏览器请求的数据。点击查看详细信息,如上面提到的请求头、响应头等。
以上是什么是爬虫?爬行的基本过程是什么?更多详情请关注其他相关php中文网文章!
免责声明:本文由原创发表于php中文网。转载请注明出处。感谢您的尊重!如果您有任何问题,请联系我们