码迷,mamicode.com
首页 > Web开发 > 详细

爬虫-urllib的使用(2)

时间:2020-07-10 00:21:22      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:自定义   get   pos   handler   for   隐藏   sage   info   request   

import urllib.request
import json


# 接收一个字符串作为参数
r = urllib.request.urlopen(http://httpbin.org/get)
# 读取response的内容
text = r.read()
print(text)
# http返回状态码和msg
print(r.status, r.reason)
r.close()

# 返回的内容是json格式,直接用Load函数加载
obj = json.loads(text)
print(obj)

# r.headers是一个HTTPMessage对象
# 对头部信息进行遍历,有必要的话改写头部信息的某些数据
for k, v in r.headers._headers:
    print(%s: %s % (k, v))
#修改头部的数据的代理为了隐藏一些服务器的信息统一修改为以下的信息
ua = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0)       AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77       Safari/537.36
#处理方式
# 添加自定义的头信息(1) req
= urllib.request.Request(http://httpbin.org/user-agent) req.add_header(User-Agent, ua) # 接收一个urllib.request.Request对象作为参数 r = urllib.request.urlopen(req) resp = json.load(r) # 打印出httpbin网站返回信息里的user-agent print("user-agent: ", resp["user-agent"])

 

身份验证处理:

auth_handler = urllib.request.HTTPBasicAuthHandler()
#设置访问应提供的信息 auth_handler.add_password(realm
=Fake Realm, uri=http://httpbin.org, user=guye, passwd=123456)
#传参与安装 opener
= urllib.request.build_opener(auth_handler) urllib.request.install_opener(opener)
#访问 r
= urllib.request.urlopen(http://httpbin.org/basic-auth/guye/123456) print(r.read().decode(utf-8))

结果:

技术图片

 

 

get&post的方法的使用:

# 使用GET参数
params = urllib.parse.urlencode({spam: 1, eggs:2, bacon: 2})
url = http://httpbin.org/get?%s % params
with urllib.request.urlopen(url) as f:
    print(json.load(f))

# 使用POST方法传递参数
data = urllib.parse.urlencode({name: 小明, age: 2})
data = data.encode()
with urllib.request.urlopen(http://httpbin.org/post, data) as f:
    print(json.load(f))

# 使用代理IP请求远程url
proxy_handler = urllib.request.ProxyHandler({
                        http: http://iguye.com:41801
                    })
# proxy_auth_handler = urllib.request.ProxyBasicAuthHandler()
opener = urllib.request.build_opener(proxy_handler)
r = opener.open(http://httpbin.org/ip)
print(r.read())


# urlparse模块
o = urllib.parse.urlparse(http://httpbin.org/get)

结果:

技术图片

技术图片

 

爬虫-urllib的使用(2)

标签:自定义   get   pos   handler   for   隐藏   sage   info   request   

原文地址:https://www.cnblogs.com/topass123/p/13276816.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!