前两年火得一塌糊涂,但实际上根本就不是什么新技术。
最早的时候被称之为spider(蜘蛛),或者robot(机器人)
其实就是一段能够通过HTTP协议自动读取互联网上众多网页内容的小程序。
#体会#:浏览器也是程序,用户点击某链接可以触发HTTP请求,当然也可以写程序自动发起HTTP请求……
实际上几乎所有主流语言都可以用来写爬虫。
之所以现在爬虫和python深度绑定,只有一个原因:简单。
比如Google和百度(还有Bing,推荐使用),除了前途的HTML页面,展示搜索框和搜索结果,
实质上主要由两部分组成:
SEO(Search Engineer Optimization),搜索引擎优化,目的是让网站更好的被搜索引擎收录,并且在搜索结果中取得更好的排名。
但是,慢慢地人们开始认识到数据的价值,就不太愿意爬虫爬取自己网站的数据,所以诞生了:
网站管理员只要在网站域名的根目录下放一个robots.txt 文本文件,里面可以指定不同的网络爬虫能访问的页面和禁止访问的页面。
但这就像个君子协定,只能靠搜索引擎/爬虫自觉遵守。
在早期,只有Google、百度和Bing这些大公司的时候,还是管用的。
但慢慢地,爬虫技术泛滥,谁都可以爬的时候……
网站不得不采用技术手段来防止爬虫爬取有关信息。常用的措施包括:
一旦完整采取了反爬虫技术,你还继续采用技术手段进行爬取,就属于非法行为。情节严重的,可构成犯罪:
如果你爬取的是公民个人信息的话,还会触犯“侵犯公民个人信息罪”(无论网站是否采用反爬虫技术手段)
PS:坊间戏称,python是面向监狱编程。
这是一个已经过气的技术……,因为:
但还是有必要了解一些基本的SEO原理:
简单来说,当出现多个搜索结果的时候,搜索引擎如何判断哪一个网页的质量更高(排在搜索结果的前面)呢?
就看这个页面是不是被更多、更好的其他页面引用(链接)——这就被称之为权重。
就像一个论文如果被更多论文引用,说明它的质量更高一样。
但是,论文有评审,网页内容没有评审呀!尤其是Web2.0时代,谁都可以发博客/文章,里面都可以带链接……
于是“黑帽SEO”技术出现了:利用机器人在所有论坛,铺天盖地的发垃圾信息,附上要推广要SEO的网站链接!
早期比较优雅,按Google说明,在a标签中添加nofollow属性,就可以表明该链接不具有加权属性,即:不代表这是我的推荐。
但后来大家更加简单粗暴:所有外部(非本站)链接,一律转到一个动态生成的跳转页面
在很长一段时间内,所有的搜索引擎都会自动忽略JavaScript内容,既不会收录,也不会运行。
首先,spider的目的是获取有用信息,Javascript是程序代码,首先就不是spider的目标
其次,如果spider运行JavaScript,会造成一些无法控制的结果,甚至被恶意攻击。最简单的,就是做一个死循环,让spider一直在里面转不出来。
最后,通过JavaScript获取的内容,如何用链接的形式呈现呢?
但现在大量的前后端分离技术的使用,对搜索引擎提出了巨大的挑战!现目前可以肯定的是,一些简单的JavaScript代码及其结果,Google已经可以收录。但保险起见,前后端分离的项目,还是建议做一个“服务端渲染”的工作。
无论是为了SEO,还是为了“用户友好”(好看),都应该更好的组织url,让其
对比:
|
好 |
不好 |
所有文章 |
/Article |
|
yezi发布的所有文章 |
/Article/yezi |
/Article/ByAuthor?name=yezi |
yezi发布的分类id为1的所有文章 |
/Article/yezi/category-1 |
/Article/ByCategory?id=1 |
yezi发布的、分类id为1、自身id为186的文章 |
/Article/yezi/category-1/186 |
/Article/Single?id=186 |
多快好省!前端后端,线上线下,名师精讲
更多了解 加: