阅读 230

PHP爬虫 -- 008 爬虫初探

什么是爬虫?

  • 从本质上来说,就是利用程序在网上拿到对我们有价值的数据
  • 爬虫能做很多事,能做商业分析,也能做生活助手,
  • 比如:分析北京近两年二手房成交均价是多少?
  • 深圳的Python工程师平均薪资是多少?
  • 北京哪家餐厅粤菜最好吃?等等。
  • 这是个人利用爬虫所做到的事情,而公司,同样可以利用爬虫来实现巨大的商业价值。
  • 比如你所熟悉的搜索引擎——百度和谷歌,它们的核心技术之一也是爬虫,而且是超级爬虫。

1559082538356

1559082607322

  • 百度这家公司会源源不断地把千千万万个网站爬取下来,存储在自己的服务器上。
  • 你在百度搜索的本质就是在它的服务器上搜索信息,
  • 你搜索到的结果是一些超链接,在超链接跳转之后你就可以访问其它网站了

浏览器工作原理

1559082753633

1559082768483

1559082795780

  • 当服务器把数据响应给浏览器之后,浏览器并不会直接把数据丢给你。
  • 因为这些数据是用计算机的语言写的,浏览器还要把这些数据翻译成你能看得懂的样子,
  • 这是浏览器做的另一项工作【解析数据】。

爬虫的工作原理

1559082874334

1559082914086

1559082935388

状态码

  • 不是每一次请求就一定能成功, 我们需要判断请求的结果

1559083486518

1559083688701

  • 301—永久移动。被请求的资源已被永久移动位置;
  • 302—请求的资源现在临时从不同的 URI 响应请求;
  • 305—使用代理。被请求的资源必须通过指定的代理才能被访问;
  • 307—临时跳转。被请求的资源在临时从不同的URL响应请求;
  • 400—错误请求;
  • 402—需要付款。该状态码是为了将来可能的需求而预留的,用于一些数字货币或者是微支付;
  • 403—禁止访问。服务器已经理解请求,但是拒绝执行它;
  • 404—找不到对象。请求失败,资源不存在;
  • 406—不可接受的。请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体;

1559083708684

  • 408—请求超时;
  • 409—冲突。由于和被请求的资源的当前状态之间存在冲突,请求无法完成;
  • 410—遗失的。被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址;
  • 413—响应实体太大。服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值。
  • 417—期望失败。在请求头 Expect 中指定的预期内容无法被服务器满足;
  • 418—我是一个茶壶。超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现;
  • 420—方法失效。
  • 422—不可处理的实体。请求格式正确,但是由于含有语义错误,无法响应;
  • 500—服务器内部错误。服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;

下一节

关注下面的标签,发现更多相似文章
评论