2. urllib基础说明

本文介绍了Python的urllib库基础用法,包括使用urlretrieve()下载文件,urlcleanup()清理缓存,通过urlopen()获取页面信息及状态码。重点讲解了GET和POST两种HTTP请求方式。

主要是 urlretrieve(), urlcleanup(), info(), getcode()

urlretrieve("网址地址","本地路径(带后缀名)")

urlcleanup() 删除缓存

file = urllib.request.urlopen("web.htm")

print (file.info()) #获得页面的信息

print (file.getcode()) # 获取当前页面的状态码 

下面是常见的HTTP状态码:

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

简单的模版

get

from urllib.request import urlopen,urlcleanup,quote
import re
def pareseUrl(re_lamdba, url):
    data = urlopen(url).read().decode('utf-8')
    ret = re.compile(re_lamdba).finditer(data)
    for i in ret:
        yield {
            'title':i.group('title'),
        }

keyword = '喇叭花'
keyword = quote(keyword) #进行转码,url不认识中文
url = 'http://www.baidu.com/s?wd='+keyword
pat1 = "title:'(?P<title>.*?)',"
pat2 = '"title":"(?P<title>.*?)",'
data = urlopen(url).read().decode('utf-8')
ret1 = re.compile(pat1).findall(data)
ret2 = re.compile(pat2).findall(data)
print(ret1, ret2)

post 

from urllib.request import urlopen,urlcleanup,quote,Request
from urllib.parse import urlencode
#urlencode 需要转码(表单的内容提交需要转码)里面是字典的形式,操作表单
'''
<body>
<form action="" method="post">
name:<input name="name" type="text" /><br>
passwd:<input name="pass" type="text" /><br>
<input name="" type="submit" value="submit" />
<br />you input name is:aqr<br>you input passwd is:qwerqwer
</body>
'''
posturl = 'https://www.iqianyue.com/mypost'
postdata = urlencode({
    'name':'lalala',
    'pass':'1122334455',
}).encode('utf-8') #设置编码

#进行post需要用到urllib.request下的Request(真实的post地址,post数据)
req = Request(posturl, postdata)

rst = urlopen(req).read().decode('utf-8') #获取请求之后的页面
print(rst)

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值