python爬虫urllib的request与parse方法

系统 1087 0

在爬虫前,需要知道这两个知识点!!!
字符串转字节类型
str --> bytes
encode()
字节类型转字符串
bytes --> str
decode()

1.以一个简单的例子讲解urllib.request方法

read 读取相应内容,内容
geturl 获取请求的url
getheaders 获取头部信息
getcode 获取状态码
readlines 按行读取,返回列表,都是字节类型

1.1获取百度的网页代码

            
              import urllib.request
url = "https://www.baidu.com"
response = urllib.request.urlopen(url)

#打印出来是二进制
print(response.read().decode('utf8'))

# 获取状态码
print(response.getcode())

# 获取响应头
print(response.getheaders())

# 获取url
print(response.geturl())

# 把读取到的内容保存起来的两种方法

# 第一种方法w以字符串写入
with open("baidu.html","w",encoding='utf8') as f:
    f.write(response.read().decode('utf8'))

#第二种方法 wb以二进制写入
with open("baidu.html","wb") as f:
    f.write(response.read())

            
          

1.2爬取百度里面的图片为例子

            
              import urllib.request
image_url = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=
1561806237168&di=319407f10b4c55baf1d5b905d8a2f20a&imgtype=0&src=http%3A%2F%2
Fimg2.ph.126.net%2F2zB3_wWPXlEW0RdwQa8d6A%3D%3D%2F2268688312388037455.jpg'

#第一种方法
# response = urllib.request.urlopen(image_url)
#像图片只能写入到本地二进制的格式
# with open('qing.jpg','wb') as fp:
#     fp.write(response.read())

#第二种方法
urllib.request.urlretrieve(image_url,'chun.jpg')

            
          

2.以一个简单的例子讲述parse方法

quote url编码函数,将中文进行转化为%xxx
unquote url解码函数,将%xxx转化为指定字符
urlencode 给一个字典,将字典拼接为query_string

2.1自己写一个url进行操作

            
              import urllib.parse
url = 'http://www.baidu.com/index.html'
#http://www.baidu.com/index.html?name=goudan&age=18&sex=nv&height=180
name = '狗蛋'
age = 18
sex = '女'
height = '180'
data={
    'name':name,
    'age':age,
    'sex':sex,
    'height':height
}
#第一种方法
query_string = urllib.parse.urlencode(data)
print(query_string)

#第二种方法
#遍历字典
# it = []
# for k,v in data.items():
#     it.append(k+'='+str(v))
# query_string = '&'.join(it)

url = url+'?'+query_string
print(url)

            
          

这就是request与parse方法!!!


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论