爬虫相关常识

一、网页相关:
1、网页编辑语言有 html,CSS,Javascript等,其中html提供了网页的大体构架,CSS对网页的美观程度起很大的作用,而JavaScript则更侧重于后台的数据交互。

# html框架
# html由一个个的标签组成,每个标签都有不同的作用,其中 head 标签为文档的开头部分,可用于规定编码格式,title 标签设定 html 的标题,body 标签里面放文档的主体内容,div 标签实现文档的分层...
"cell_type": "raw",   
"metadata": {},   
"source": [    
"<!DOCTYPE  html>\n",#定义了文档的类型    
"<html>\n",    
"    <head>\n",    
"        <meta charset=\"UTF-8\">\n",    
"        <title>Demo</title>\n",    
"    </head>\n",   
"    <body>\n",
# 除了上述的大体框架标签外,CSS 里还有其他的一些属性标签可以用来规定标签的一些属性,其中 id ,class,style,title都可以用于区分不同的具有相同名字的标签,例如<a title = "***"> 和 <a class = "&&&">,通过 title 和 class 标签即可区分两个 <a> 标签   
"        <div id=\"container\">\n",    
"            <div class=\"wrapper\">\n",    
"                <h1>Hello World</h1>\n",    
"                <div>Hello Python.</div>\n",    
"            </div>\n",    
"        </div>\n",    
"    </body>\n",    
"</html>"

2、关于网页开发者工具的介绍(开发者工具很重要)

 Chrome的开发者模式为用户提供了下面几组工具 
- Elements:允许用户从浏览器的角度来观察网页,用户可以借此看到Chrome渲染页面所需要的HTML、CSS和DOM(Document Object Model)对象。
- Network:可以看到网页向服务气请求了哪些资源、资源的大小以及加载资源的相关信息。此外,还可以查看HTTP的请求头、返回内容等。
- Source:即源代码面板,主要用来调试JavaScript。
- Console:即控制台面板,可以显示各种警告与错误信息。在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为shell在页面上与JavaScript交互。
- Performance:使用这个模块可以记录和查看网站生命周期内发生的各种事情来提高页面运行时的性能。
- Memory:这个面板可以提供比Performance更多的信息,比如跟踪内存泄漏。
- Application:检查加载的所有资源。
- Security:即安全面板,可以用来处理证书问题等。

注:其中,我们最常用的是 network,从里面寻找 User-Agent 、Cookie、url,一般对于一些简单的网页用这些爬取就足够了。

3、相关爬取函数(因为之前自己做过一些爬虫,并总结了有关的函数,所以这里不在赘述,详情查看下面的链接)
requests的网络爬虫
request的网络爬虫
爬虫网页相关解析

二、JavaScript

语言概述:
JavaScript语言一般被定义为一种“面向对象、动态类型的解释性语言”,最初由Netscape公司为Navigator浏览器开发,目的是作为新一代浏览器的脚本语言支持。换句话说,不同于PHP或者ASP.NET,JavaScript不是为“网站服务器”提供的语言,而是为“用户浏览器”提供的语言。从客户端——服务器端的角度来说,JavaScript无疑是一种客户端语言,但是由于JavaScript受到业界和用户的强烈欢迎,加之开发者社区的活跃,目前的JavaScript已经开始朝向更为综合的方问发展。随着V8引擎(可以提高JavaScript的解释执行效率)和Node.js等新潮流的出现,JavaScript甚至已经开始涉足“服务器端”。在TIOBE排名(一个针对各类程序设计语言受欢迎度的比较)上,JavaScript稳居前10,井与PHP、Pytbon、C#等分庭抗礼。
有一种说法是,对于今天任何一个正式的网站页面而言,HTML决定了网页的基本内容,CSS(Cascading Style Sheets,层叠样式表)描述了网页的样式布局,JavaScript 则控制了用户与网页的交互。
JavaScript语言的特点
动态语言:动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。JavaScript便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言,而CC++等语言则不属于动态语言。比如在JavaScript中可以在对象定义之后动态的为其添加属性和方法
脚本语言:脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言,只在被调用时进行解释或编译,然后执行。它的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言
弱类型:弱/强类型指的是语言类型系统的类型检查的严格程度,弱类型的语言在声明变量的时候不必进行变量类型的确定,语言的运行时会隐式做数据类型转换,对于弱类型语言来说,不同类型的变量可以进行直接运算,而强类型的则不可以。
基本知识
JavaScript的执行顺序:按照HTML文件中出现的顺序依次执行
1、大小写敏感:
	JavaScript严格区分大小写
2、忽略空白符和换行符
3、语句分隔符:
	使用;结束语句,可以把多个语句写在一行,最后一个语句的分号可以省略,		但尽量不要省略。可以使用{}括成一个语句组,形成一个block
4、通过\\对代码进行折行操作
	单行注释&#8195;&#8195;
	多行注释/注释内容/
5、JavaScript中的保留字:abstract,elseinstanceofsuper,boolean,enum,int,switchbreakexportinterface,synchronized,byte,extendsletthiscasefalse,long,throwcatch,final,native,throws,char,finallynew,transient,class,float,nulltrueconstforpackagetrycontinuefunctionprivatetypeofdebugger,goto,protectedvar,defaut,ifpublicvoiddelete,inplements,return,volatile,doimport,short,while,doble,instatic,width
6、通过document.write()向文档书写内容
7、通过console.log()向控制台写入内容
8、语法错误:通过控制台进行调试
9、逻辑错误:通过alert() 进行调试
基本语法
1、变量
var a = 1; //变量都用var关键字定义    
var myFunction = function(arg1){ //注意这个赋值语句,在JavaScript中,变量和函数的本质是一样的   
	arg1 += 1;
	return arg1;
}
2、函数
var myAnotherFunction = function(f, a){ //函数也可作为另一个函数的参数被传入\
	return f(a);
}
console.log(myAnotherFunction(myFunction, 2))//条件语句
if (a > 0){
	a -= 1;
}else if (a == 0){
	a -= 2;
}else{
	a += 2;
}
3、数组
arr = [1, 2, 3];
console.log(arr[1]);
4、对象
myAnimal = {
	name: \"Bob\",
	species: \"Tiger\",
	gender: \"Male\",
	isAlive: true,
	isMammal: true,
}
 //访问对象的属性
console.log(myAnimal.gender);
5、匿名函数
myFunctionOp = function(f, a){
	return f(a);
}
res = myFunctionOp( //直接在参数处写上一个函数
function(a){return a * 2;},4)//可以联想lambda表达式来理解
console.log(res);//结果为8}

另:除了对JavaScript 语法的了解,为了更好地分析和抓取网页,还需要对目前广为流行的JavaScript 第三方库有简单的认识。包括jQuery、Prototype、React 等在内的这些JavaScript库一般会提供丰富的函数和设计完善的使用方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值