python边写边总结(七)urllib学习

1 篇文章 0 订阅
1 篇文章 0 订阅

今天偶然碰到爬虫,之前也了解正则表达式,哈哈哈,就试着操作了一下,但是对于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协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件

总的来讲,在robots.txt里面告诉了哪个搜索殷勤的爬虫程序可以访问,哪个是禁止的,当spider访问一个网站时,首先会检查该网站中是否存在robots.txt这个文件,如果 Spider找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围,robots.txt文件一般在根目录下

然后去它官网看看https://docs.python.org/3/library/urllib.html


urllib is a package that collects several modules for working with URLs:

request 用于打开和读取URL

The urllib.request 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等。

error包含了exception抛出的异常

The urllib.error module defines the exception classes for exceptions raised by urllib.request. The base exception class is URLError.

urllib.error模块定义了异常类,用于处理rullib.request抛出的异常,它的基本异常类为URLError

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

robotparser用于解析robot.txt文件

This module provides a single class, RobotFileParser, 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 http://www.robotstxt.org/orig.html.

这个模块提供了RobotFileParser类,它回答了user的程序能否获取Web的URL

主要就是以上四个module

//test_urllib.py
import urllib
import webbrowser as web

url="http://www.baidu.com"

content=urllib.request.urlopen(url)

print(content.info())
print(content.geturl())
print(content.getcode())

//output
Bdpagetype: 1
Bdqid: 0xcf01942c000867d2
Cache-Control: private
Content-Type: text/html
Cxy_all: baidu+6f1202193aca5407f02a6a9b8cf5ef53
Date: Sat, 15 Dec 2018 07:25:17 GMT
Expires: Sat, 15 Dec 2018 07:24:24 GMT
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Server: BWS/1.1
Set-Cookie: BAIDUID=2FD761840C981EF4E9A87AEC75AA8B3B:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=2FD761840C981EF4E9A87AEC75AA8B3B; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: PSTM=1544858717; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-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.com
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Connection: close
Transfer-Encoding: chunked

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值