Python爬虫案例与实战:Python网络爬虫基础-HTTP、HTML、JavaScript、Requests

Python爬虫案例与实战:Python网络爬虫基础-HTTP、HTML、JavaScript、Requests

第一部分爬虫基础篇介绍Python爬虫的基础知识,便于读者熟练掌握相关知识。其中,包括Python语言的一些基本特性、Python解决爬虫问题的一些基本流程(如请求、下载、解析、数据存储)、对应的Python工具包(如Requests用于请求下载,XPath、Python解析JSON、正则表达式、BeautifulSoup等用于解析,Python操作文件、数据库等工具用于数据存储等)。通过本部分的学习,使读者能基本了解一些Python爬虫常用的基本工具。

1.1HTTP、HTML与JavaScript

1.1.1HTTP

HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准。通过使用网页浏览器、网络爬虫或者其他的工具,客户端可以发起一个HTTP请求到服务器上的指定端口(默认端口号为80)。一般称这个客户端为用户代理程序(UserAgent)。应答的服务器上存储着一些资源,如HTML文件和图像。一般称这个应答服务器为源服务器(OriginServer)。在用户代理和源服务器中间可能存在多个“中间层”,如代理服务器、网关或者隧道(Tunnel)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定必须使用它或它支持的层。
HTTP假定其下层协议提供可靠的传输。通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态(如“HTTP/1.1200OK”)及返回的内容(如请求的文件、错误消息或者其他信息)。
HTTP的请求方法有很多种,主要包括如下几种。
GET,向指定的资源发出“显示”请求。GET方法应只用于读取数据时,而不应当被用于产生“副作用”的操作中,如在WebApplication中。其中一个原因是GET方法可能会被网络爬虫等随意访问。
POST,向指定资源提交数据,请求服务器进行处理(如提交表单或者上传文件)。数据被包含在请求文本中,该请求可能会创建新的资源或修改现有资源,或二者皆有。
PUT,向指定资源位置上传最新内容。
DELETE,请求服务器删除Request-URI所标识的资源。
TRACE,回显服务器收到的请求,主要用于测试或诊断。
OPTIONS,该方法可使服务器传回该资源所支持的所有HTTP请求方法。用’*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

1.1.2HTML

HTML(HyperTextMarkupLanguage,超文本标记语言)是一种用于创建网页的标准标记语言。注意,与HTTP不同的是,HTML是直接与网页相关的,常与CSS、JavaScript一起被众多网站用于设计令人赏心悦目的网页、网页应用程序以及移动应用程序的用户界面。常用的网页浏览器都可以读取HTML文件,并将其渲染成可视化网页。
HTML文档由嵌套的HTML元素构成。它们用HTML标签表示,包含于尖括号中,如

。在一般情况下,一个元素由一对标签表示:“开始标签”

与“结束标签”

。元素如果含有文本内容,就被放置在这些标签之间。在开始与结束标签之间也可以封装另外的标签,包括标签与文本的混合。这些嵌套元素是父元素的子元素。开始标签也可包含标签属性。这些属性有诸如标识文档区段、将样式信息绑定到文档演示和为一些如等的标签嵌入图像、引用图像来源等作用。一些元素,如换行符
,不允许嵌人任何内容,无论是文字还是其他标签。这些元素只需一个单一的空标签(类似于一个开始标签),无须结束标签。浏览器或其他媒介可以从上下文识别出元素的闭合端以及由HTML标准所定义的结构规则。因此,一个HTML元素的一般形式为:<标签属性1="值1"属性2=“值2”>内容</标签>。一个HTML元素的名称即为标签使用的名称。注意,结束标签的名称前面有一个斜杠“/”,空元素不需要也不允许结束标签。如果元素属性未标明,则使用其默认值。

1.1.3JavaScript

现代网页除了HTTP和HTML,还会涉及JavaScript技术。人们看到的浏览器中的页面,其实是在HTML的基础上,经过JavaScript进一步加工和处理后生成的效果。例如,淘宝网的商品评论就是通过JavaScript获取JSON数据,然后“嵌入”到原始HTML中并呈现给用户。这种在页面中使用JavaScript的网页对于20世纪90年代的Web界面而言几乎是天方夜谭,但在今天,以AJAX(AsynchronousJavaScriptAndXML,异步JavaScript与XML)技术为代表的结合JavaScript、CSS、HTML等语言的网页开发技术已经成为了绝对的主流。JavaScript使得网页可以灵活地加载其中的一部分数据。后来,随着这种设计的流行,AJAX这个词语也成为一个“术语”。
JavaScript一般被定义为一种“面向对象、动态类型的解释型语言”,最初由Netscape(网景)公司推出,目的是作为新一代浏览器的脚本语言支持,换句话说,不同于PHP或者ASP.NET,JavaScript不是为“网站服务器”提供的语言,而是为“用户浏览器”提供的语言。为了在网页中使用JavaScript,开发者一般会把JavaScript脚本程序写在HTML的

在这里插入图片描述
JavaScript在语法结构上类似于 C++等面向对象的语言,循环语句、条件语句等也都与Python 中的写法有较大的差异,但其弱类型特点更符合Python 开发者的使用习惯。一段简单的JavaScript 脚本程序如下:

function add(a,b) {
   
   
var sum = a+ b;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值