23年刚开工比较闲,这两天有看到小伙伴在积极的学习python课程,自己也不能拉下,找了一些资料,测试下载百度图片。
此下载代码比较简单,码字在这里,也是让大家一起来学习下,这个流程和思路。多多支持哦!!!
Requests库安装
python -m pip install requests
get请求方法
requests.get()
rtn= requests.get(url,headers=headers,params,timeout)
参数说明如下:
url:要抓取的 url 地址。
headers:用于包装请求头信息。
params:请求时携带的查询字符串参数。
timeout:超时时间,超过时间会抛出异常。
代码实例和运行结果如图:
对象属性
当使用 Requests 模块向 URL 发起请求后会返回 HttpResponse 响应对象,这个对象具有以下属性:
属性 | 说明 |
encoding | 查看或指定响应字符编码 |
staus_code | 返回HTTP响应码 |
url | 查看请求头信息 |
headers | 查看请求头信息 |
cookies | 查看cookies信息 |
text | 以字符串形式输出 |
content | 以字节流形式输出,若要保存下载图片需使用该属性 |
使用示例和输出结果如下图:
下载指定百度图片
打开百度图片翻页版(点击访问),建议大家要收藏保留。
其 url 规律如下:(只分析前半部分)
第一页:https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=壁纸&pn=0
第二页:https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=壁纸&pn=20
第n页:https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=壁纸&pn=20*(n-1)
为了限制下载,将原来的翻页版变成了通过滚动滑轮自动加载图片,此种方式在一定程度上限制了下载程序。
首先打开百度图片,并在输入框搜索 “壁纸”,然后右键查看任意图片的源地址,thumbURL所对应的 url 地址,如图所示:
使用上述方式多检查几张图片,会发现图片源地址,有两种匹配结果:
"hoverURL":"https://img1.baidu.com/it/u=1026360805,1567430550&fm=253&fmt=auto&app=120&f=JPEG?w=1280&h=800"
"thumbURL":"https://img1.baidu.com/it/u=1026360805,1567430550&fm=253&fmt=auto&app=120&f=JPEG?w=1280&h=800"
任选其一,写出图片源地址正则表达式,如下所示:
urladdr='"hoverURL":"(.*?)"'
代码实例
下载百度图片代码实例:
自己测试了可以用,修改了按翻页形式下载,可调整下载张数(默认单页下载60张,不可修改)。
总结
学习任何知识都是一个循序渐进的过程,从嘤嘤学语到出口成章,从蹒跚学步到健步如飞,你可以收获到学习知识的快乐还能交到好多志同道合的朋友。python抓取的相关知识只能算一个简单的分支,当然好好钻研下去都能收获满满。
这里告诫自己:借鉴前人,完善自我,不断创新,愿有梦想的你,越来越好。