Python urllib的使用,并进行post get请求

import  urllib.request
import requests

#打开网站判断是否能正常打开,并返回链接状态
def print_openUrl(m_url):
    try:
        myurl =urllib.request.urlopen(m_url)
        print(myurl.getcode())                    #打开网站获取状态码
        return  myurl.getcode()
    except urllib.error.HTTPError as e :
        if e.code()==404:      #判断网站是否能打开,若打不开返回404
            print(404)
            return 404
        else:
            return e.code()
    except ValueError:
        print("传入路径不合法,未加http或者https完整路径!,需按如下格式传参 http://www.baidu.com/")
        return  -2001

#调用实例,传入需要打开的网址,需填写完整的
print(print_openUrl("www.baidu.com"))



#将抓取的文字保存到本地
def saveHtmlData(url):
    try:
        myurl = urllib.request.urlopen(url)  #打开网页,并将网页内容保存
        f = open("data.html","wb")
        connect =myurl.read()             #读取获取的网页内容
        f.write(connect)                  #将保存的网页内容写入到文本中
        f.close()
        print("写入成功!")
        return 0
    except (ValueError,urllib.error.URLError):   #若传入路径不合法,则进入此流程
        print("传入路径不合法,未加http或者https完整路径!,需按如下格式传参 http://www.baidu.com/")
        return  -2001
    except urllib.error.HTTPError as e :
        if e.code()==404:      #判断网站是否能打开,若打不开返回404
            print('网站打不开,404')
            return 404

saveHtmlData("http:://www.baidu.com/")


#url的编码  使用quote函数进行处理
encodeurl = urllib.request.quote("http://www.baidu.com/")
print(encodeurl)

#url解码  使用unquote函数处理,
encodeurl = urllib.request.unquote("http%3A//www.baidu.com/")
print(encodeurl)


#使用urllib进行post请求

#定义请求的地址
post_url="https://news.ssp.qq.com/app"
#定义传入的头文件
post_heads={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
#定义传送的数据
post_data=""
post_reslut = requests.post(post_url,post_data,post_heads)

#打印返回的数据
print(post_reslut.text)

 

posted @ 2021-06-03 18:53  神迹丶  阅读(241)  评论(0编辑  收藏  举报
网站已运行: