urllib 正则

urllib库的基本使用

所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。

urllib的模块:

request: 它是最基本的HTTP请求模块,可以用来模拟发送请求,就像在浏览器中输入网址,然后敲击回车键一样,使用的时候只需要给库方法传入相关的URL和相关的参数即可
error: 异常处理模块,如果出现请求错误,我们可以使用这个模块来捕获异常,然后进行重试或者其他操作,保证程序不会意外终止.

parse: 这是一个工具模块,提供了许多url的处理方法,比如拆分,解析,合并等等

常用参数:

url:设置目标url
data:如果设置该参数,则请求默认为post请求
timeout:用于设置超时时间,单位为秒
context:必须是一个ssl.SSLContext类型,用来指定SSL设置,忽略未认证的CA证书.

Request:类的相关参数

url 参数是请求链接,这个是必传参数,其他的都是可选参数。

data 参数跟 urlopen() 中的 data 参数用法相同。

headers 是一个字典。它除了在 Request 中添加,还可以通过调用 Reques t实例的 add_header() 方法来添加请求头。

unverifiable 参数表示这个请求是否是无法验证的,默认值是False。意思就是说用户没有足够权限来选择接收这个请求的结果。例如我们请求一个HTML文档中的图片,但是我们没有自动抓取图像的权限,我们就要将 unverifiable 的值设置成 True。(这个参数我们不需要设置)

method 参数指的是发起的 HTTP 请求的方式

data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。

headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。

请求头:

用不同的浏览器在发送请求的时候,会有不同的User-Agent头。 urllib默认的User-Agent头为:Python-urllib/x.y(x和y是Python主版本和次版本号,例如 Python-urllib/3.5)

Header:

HTTP Request 中加入特定的 Header,来构造一个完整的HTTP请求消息。
可以通过调用Request.add_header() 添加/修改一个特定的header
也可以通过调用Request.get_header()来查看已有的header。

正则:

单字符匹配

. 除换行符之外的任意字符
\d 表示数字
\D 匹配非数字
\w 匹配单词字符[a-z,A-Z,0-9]
\W 匹配非单词字符
\s 匹配空白字符,空格,\n \t ...
\S 匹配非空白字符
^ 匹配以...开头
$ 匹配以...结尾
[0-9] => \d 匹配0-9

多字符匹配(贪婪匹配)

  • 匹配*前面的字符任意次数
  • 匹配+前面的字符至少1次
    ? 匹配?前面的字符0~1次
    {n,m} 匹配{n,m}前面的字符n~m次

多字符匹配(非贪婪匹配)

*?
+?
??

其他匹配

() 分组
| 逻辑或
\ 转义字符

你可能感兴趣的:(urllib 正则)