本文共 3461 字,大约阅读时间需要 11 分钟。
今天偶然碰到爬虫,之前也了解正则表达式,哈哈哈,就试着操作了一下,但是对于urllib了解不够,今天就总结一下,以后可能用得着
- HTTP和HTTPS
HTTP即超文本传输协议,用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
再看看可能SSL(secure socket layer)和TLS(Transport Layer Security)
SSL和TLS是为网络通信提供安全和数据完整性的一种协议,在传输层为网络进行加密
- URL
URL一般可分离为几大部分,一部分是scheme(模式/协议),我们常见的有http,FTP等
接着的是服务器名,我发现csdn就有几个服务器,mp,blog等
然后就是域名,csdn的域名就是csdn.net
接着域名的是端口,这个有些有,有些没有
然后就是网页文件的位置,关于这个位置,有相对路径和绝对路径量种方式
我们这里没有解释ip,什么所示ip呢,我们的域名就是经过域名服务器解析之后得到的,就是一个映射关系,所以,这里就可以看到你的ip是电信部门赋予的,但是你的域名,是需要申请,因为要用到域名服务器,所以,你也需要付费
- robots协议
Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。s.txt是一个协议,而不是一个。robots.txt是中访问网站的时候要查看的第一个文件
总的来讲,在robots.txt里面告诉了哪个搜索殷勤的爬虫程序可以访问,哪个是禁止的,当spider访问一个网站时,首先会检查该网站中是否存在robots.txt这个文件,如果 Spider找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围,robots.txt文件一般在根目录下
然后去它官网看看
urllib
is a package that collects several modules for working with URLs:
- for opening and reading URLs
request 用于打开和读取URL
The module defines functions and classes which help in opening URLs (mostly HTTP) in a complex world — basic and digest authentication, redirections, cookies and more.
urllib.request模块定义了有助于在复杂世界中打开URL(主要是HTTP)的函数和类 - 基本和摘要式身份验证,重定向,cookie等。
- containing the exceptions raised by
error包含了exception抛出的异常
The module defines the exception classes for exceptions raised by . The base exception class is .
urllib.error模块定义了异常类,用于处理rullib.request抛出的异常,它的基本异常类为URLError
- for parsing URLs
parse用于解析URL
This module defines a standard interface to break Uniform Resource Locator (URL) strings up in components (addressing scheme, network location, path etc.), to combine the components back into a URL string, and to convert a “relative URL” to an absolute URL given a “base URL.”
这个模块定义了一个标准的接口把URL strings分解为各个部分,或者把各个部分合并为URL string,或者把相对URL转换为绝对URL
- for parsing
robots.txt
files
robotparser用于解析robot.txt文件
This module provides a single class, , which answers questions about whether or not a particular user agent can fetch a URL on the Web site that published the robots.txt
file. For more details on the structure of robots.txt
files, see .
这个模块提供了RobotFileParser类,它回答了user的程序能否获取Web的URL
主要就是以上四个module
//test_urllib.pyimport urllibimport webbrowser as weburl="http://www.baidu.com"content=urllib.request.urlopen(url)print(content.info())print(content.geturl())print(content.getcode())//outputBdpagetype: 1Bdqid: 0xcf01942c000867d2Cache-Control: privateContent-Type: text/htmlCxy_all: baidu+6f1202193aca5407f02a6a9b8cf5ef53Date: Sat, 15 Dec 2018 07:25:17 GMTExpires: Sat, 15 Dec 2018 07:24:24 GMTP3p: CP=" OTI DSP COR IVA OUR IND COM "Server: BWS/1.1Set-Cookie: BAIDUID=2FD761840C981EF4E9A87AEC75AA8B3B:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.comSet-Cookie: BIDUPSID=2FD761840C981EF4E9A87AEC75AA8B3B; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.comSet-Cookie: PSTM=1544858717; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.comSet-Cookie: delPer=0; path=/; domain=.baidu.comSet-Cookie: BDSVRTM=0; path=/Set-Cookie: BD_HOME=0; path=/Set-Cookie: H_PS_PSSID=1436_21118_28132_26350_27750_27244_22160; path=/; domain=.baidu.comVary: Accept-EncodingX-Ua-Compatible: IE=Edge,chrome=1Connection: closeTransfer-Encoding: chunked
转载地址:https://blog.csdn.net/zhouzhouasishuijiao/article/details/85014091 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!