2018-07-25 爬虫基础

    今天我们主要学习了有关爬虫的基础教程。爬虫是用于抓取网络上的数据,因此,首先必须了解有关于网络协议的基础知识。

    HTTP协议(超文本传输协议)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用浏览器、爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。我们称这个客户端叫用户代理(user agent)。应答的服务器上存储着资源,比如HTML文件和图像。这个应答服务器为源服务器(origin server)。

    HTTP的请求结构:请求行、请求头部、空行、请求数据。请求行包括请求方法、URL、协议版本等;请求头部包括用户代理等各种字段;请求数据一般为空。响应消息:状态行、消息报头、空行、响应正文。响应消息跟请求消息结构基本一样,不过多了一个独有字段setcookies,用于向客户端发送一个cookie。

    HTTP状态码:1xx:表示服务器端已接收、继续处理;2xx:操作被成功接收并处理;3xx:需要重定向完成请求;4xx:客户端错误,无法完成请求;5xx:服务器端错误,服务器在处理请求的过程中发生错误。常用状态码:200 OK 请求成功;400 Bad Requests 语意有误或请求参数有误;401 请求未经授权;403 服务器端拒绝提供服务;404 请求资源未发现;503 由于服务器维护或过载,临时无法处理请求。

    HTTP 请求方法 1.0版本 GET、POST、HEAD。GET方法,请求页面指定信息,并返回实体主体;POST方法,向指定资源提交数据进行处理请求;HEAD方法,类似于GET请求,不过返回的内容里面没有响应数据,用于获取报文头。1.1版本新增 OPTIONS、PUT、DELETE、TRACE、CONNECT。OPTIONS,允许客户端查看服务器的性能;PUT,从客户端上传的数据替换服务端指定的数据;DELETE,删除服务器的数据;TRACE,回显服务器收到的请求,用于测试或诊断;CONNECT,预留给能够将连接改为管道方式的代理服务器


    抓包

        工具:chrome、firefox,浏览器;fiddler,HTTP协议调试代理工具;wireshark,网络封包分析软件。

        常用模块:requests、re、lxml、beautifulsoup4 

        首先,构造url,然后构造合适的请求头部,可以只含有user-agent字段。使用requests.get方法获取指定页面内容(或者采用urllib2.urlopen方法),之后对获取到的内容使用正则表达式进行过滤,即可抓取到自己想要的数据。也可以使用lxml的xpath方法进行信息过滤,或者采用Scrapy框架进行爬数据,Scrapy是一个为了爬取网页数据,提取结构性数据开发的框架。

你可能感兴趣的:(2018-07-25 爬虫基础)