在python常见的.get()使用方法中,用的最多的场合是在python字典和requests库的情形中。
一、python字典中的get方法
python字典的get方法会返回指定键的值,dict.get(‘键’),返回“键”对应的“值”,如果键不在字典中则返回默认值None。代码附上:
dict1={'国家':'中国','首都':'北京'}
print(dict1.get('国家'))
print(dict1.get('首都'))
print(dict1.get('省会'))
输出为:
中国
北京
None
如果键不在字典中,想要自己设置返回值,可以这样处理,例如dict.get(‘键’,‘never’),键在字典中,则返回键对应的值,键不在字典中,则返回never。
dict1={'国家':'中国','首都':'北京'}
print(dict1.get('国家'))
print(dict1.get('首都','never'))
print(dict1.get('省会','never'))
输出为:
中国
北京
never
二、requests库中的get方法
requests库是一个常用的用于http请求的模块,它使用python语言编写,可以方便的对网页进行爬取,是学习python爬虫的较好的http请求模块。request的get方法,通过r=requests.get(url)构造一个向服务器请求资源的url对象,对应解释如下:
requests:返回一个包含服务器资源的response对象(response对象:包含返回的所有资源)
get():构造一个向服务器请求资源的requests对象
完整的requests使用方法包含3个参数,requests.get(url,params=None,*kwarge),其中
url:获取页面的url链接
params:url中的额外参数,字典或字节流格式,可选
**kwargs:12个控制访问的参数
response对象有以下属性:
属性 | 说明 |
---|---|
r.status_code | http请求的返回状态,若为200则表示请求成功 |
r.text | http响应内容的字符串形式,即返回的页面内容 |
r.encoding | 从http header 中猜测的相应内容编码方式 |
r.apparent_encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
r.content | http响应内容的二进制形式 |
import requests
url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=李嘉欣&pn=0'
r = requests.get(url)
print(r.status_code)
print(r.encoding)
print(r.apparent_encoding)
输出为:
200
UTF-8
utf-8
顺着requests库的get用法,爬取一组指定类型的图片,在这里选择从百度图片爬取名为“李嘉欣”的一组图片,附上代码:
import requests
import re
num=0
url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=李嘉欣&pn=0'
r = requests.get(url)
result = r.text
pic_url = re.findall('"objURL":"(.*?)",', result, re.S)
for each in pic_url:
print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each))
pic = requests.get(each, timeout=7)
string = '李嘉欣'+ r'\\' + '李嘉欣' + '_' + str(num+1) + '.jpg'
fp = open(string, 'wb')
fp.write(pic.content)
fp.close()
num += 1
随机选择两张图片,查看一下
以上就是本文的所有内容,如果本文对你有帮助,可以给我点个赞,加个关注,谢谢!