python url拼接_教你写python爬虫——用python爬原图

环境:python3.6 + pycharm

“猎物”:http://www.polayoutu.com (仅学习用)

动机1:想要爬一些尺寸比较大(不是尺度)的美图养养眼,仅此而已;

动机2:学习python爬虫,要学以致用


一、分析目标网站:

1.寻找URL:

摄影图片是分期展示的,我们滚动页面,滚动到140期,看到请求的URL如下:

http://www.polaxiong.com/collections/get_entries_by_collection_id/140?{}”

8ef131ff2806277a92e59c50f7e86a43.png

2.大胆猜测:URL地址中"?{}"去掉可不可以?我们做一个尝试,直接输入“http://www.polaxiong.com/collections/get_entries_by_collection_id/140”,得到的是一个json字符串(我个人还是蛮喜欢json字符串的,因为它跟字典互相转换,炒鸡爽!)

ad63d4ffb292f339d0ce94ec07c04682.png

3.看!有情报,data字段对应的value里有0-11编号的数据,展开其中一个,看到文件描述,心里乐开花,这不正是页面上图片的描述吗?而且,“full_res"字段对应的value,就是我们要找到原图URL。

ad63d4ffb292f339d0ce94ec07c04682.png

aee05b2ce8c2d9edb93b8dafd747a44e.png

4.尝试打开full_res的url地址,查看图片大小:2.9M,这肯定是原图啊,哪个网站缩略图能有2.9M的?

b4f603705ac02ed862eeccc0789436c4.png

5.接下来,我们要做的就是把json字符串转成字典,取出full_res的值

fa0ca16f5fe68a0e613d50027421cf6b.png

二.以下是完整爬虫代码:

#!/bin/python
# coding = utf-8# 本python爬虫仅用于学习
import urllib.request
import os, pathlib
import threading
import time
import json
import requestspath = r'C://IM/pic//'  # 使用前先创建此目录,否则会报错header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1'}def check_dir(path):if not os.path.exists(path):os.makedirs(path)print("目录创建成功,开始下载...")else:print("目录已存在,开始下载...")# 下载图片文件
def save_img(url, path, name):try:urllib.request.urlretrieve(url, "%s%s" % (path, name))# time.sleep(10)except Exception as e:# 通过try -except 来捕获异常,当目录不存在时会抛出异常print(e)def get_img(url, header, path):try:js_content = requests.get(url, headers=header).content  # 发送request请求js_dict = json.loads(js_content)  # 将json字符串转成python字典格式new_dict = js_dict['data']  # 取出data对应value值for i in range(len(new_dict)):file_url = new_dict[i]['full_res']  # 遍历得到full_res对应的原图地址file_name = file_url.split('/')[4]+'_'+file_url.split('/')[5]+'.jpg'  # 拼接文件名:“期号_图片编号.jpg”save_img(file_url, path, file_name)  # 下载图片文件,并保存到本地print("%s:已下载" % file_name)except Exception as e:print(e)if __name__ == '__main__':check_dir(path)for num in range(10, 100): # 这里是从10期到100期循环遍历# 拼接URL地址url = 'http://www.polaxiong.com/collections/get_entries_by_collection_id/'+str(num)get_img(url, header, path)

三、我们看一下效果:

459ec1dae46a8c82418e18905659db8a.png

2张图片大小共19M,下载的是原图!

9f8e4deb4ac2392894fc391e60b84ed1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Devoxx的Red Hat Engineers提供了更多Java EE

现在是Devoxx比利时时间! 最后。 今天的一切都随着大学会议的开始而开始,会议本身将于明天早晨开始。 我们都非常兴奋,因为这是欧洲的重大事件。 红帽很荣幸今年再次成为赞助商。 我们将在现场举行14次会议,一个展位–提供啤酒&am…

济宁医学院计算机专业好就业吗,山东这3所医学院实力强,就业率高,中等生可捡漏...

原标题:山东这3所医学院实力强,就业率高,中等生可捡漏山东的医药类院校中,实力较强的是山东大学医学院、青岛大学医学院、山东第一医科大学、山东中医药大学,这4所医学院的录取分数都比较高。今天给大家介绍山东3所二批…

php读取西门子plc_PLC对模拟量信号,是怎么进行处理的?

模拟量信号是自动化过程控制系统中最基本的过程信号(压力、温度、流量等)输入形式。系统中的过程信号通过变送器,将这些检测信号转换为统一的电压、电流信号,并将这些信号实时的传送至控制器(PLC)。PLC通过计算转换,将这些模拟量信号转换为内…

gnutls_handshake() failed: Illegal parameter

gnutls_handshake() failed: Illegal parameter 报错信息如下: fatal: unable to access https://git.xxx.com/xxxx/xxxx.git/: gnutls_handshake() failed: Illegal parameter 背景及原因: 1、系统环境是Ubantu 2、最近变更git使proxy做负载 3、 openss…

计算机一级怎么描述,计算机一级「关于RGB正确的描述的是」相关单选题

1、【题目】关于RGB正确的描述的是选项:A.色光三元色B.印刷用色C.一种专色D.网页用色答案:A解析:暂无解析1、【题目】Photoshop 中利用背景橡皮擦工具擦除图像背景层时,被擦除的区域填充什么颜色?选项:A.黑色B.透明C.…

AFNetworking 3.1.0 使用中某些知识点讲解

# POST / GET 请求 /*! 首先要知道,POST请求不能被缓存,只有 GET 请求能被缓存。因为从数学的角度来讲,GET 的结果是 幂等 的,就好像字典里的 key 与 value 就是幂等的,而 POST 不 幂等 。缓存的思路就是将查询的参数…

Java 8 Streams:过滤和谓词否定

最近,有关LJC 邮件列表的成员在流中.filter方法中使用谓词否定的有趣讨论,因此我认为值得在博客文章中进行总结。 讨论的主题是使用.filter和否定谓词的方法。 这篇文章的代码可以在我的github帐户中找到 。 也许这就是您可能会想到的方式,…

sql server2008如何修改mac地址_如何查看本机的MAC地址和IP地址?

MAC地址是每台电脑或是手机设备中唯一进行识别的编码,IP地址则是路由器分配给电脑或是手机设备联网使用的一个编码。当我们电脑或无法上网,都需要查看IP地址是否正确。那如何查看MAC地址和IP地址呢?方法一:如何电脑已经成功联网了…

计算机工作原理 仿真,虚拟DCS仿真工作原理

虚拟dcs(ViRTUal DCS)是相对于在过程工业系统中运行的真实DCS(Real DCS)而言的,"虚拟DCS"就是将真实DCS在非DCS的计算机系统中以某种形式再现。"虚拟"是现今广泛使用的一种高新技术概念,比如有实现视景模拟的"虚拟现实"、…

poj1062 Bellman 最短路应用

昂贵的聘礼Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 41066 Accepted: 11959Description 年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出…

vlookup练习_大胆合并吧!VLOOKUP坐字法专做单元格合并查找

回复[目录]学习113篇Excel教程全套Excel视频教程,微信扫码观看编按:前面才讲了Excel家规,数据源表不能有合并单元格,今天就嘚瑟地呼吁“大胆合并”。为何?因为老菜鸟给大家带来了单元格合并查找利器VLOOKUP坐字法查找。…

第一代计算机主要应用领域为数据处理,第一代计算机主要应用领域为____。    A.数据处理 B.人工智能 C.科学计算 D.过程控制...

C、科学计算。一代主要用于科学计算,二代用与数据处理。计算机发明者约翰冯诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩…

jaxb 映射 空字段_JAXB和未映射的属性

jaxb 映射 空字段JAXB(JSR-222)是例外配置,这意味着存在默认映射应用于域对象。 这意味着有时您需要显式排除字段/属性。 在这篇文章中,我将讨论如何使用XmlTransient或XmlAccessorType(XmlAccessType.NONE&#xff09…

vscode 书签_10个我必备的 VS code 拓展

推荐:Vue 3中令人激动的新功能:FragmentSuspense多v-modelVS Code是我最喜欢的文本编辑器。它是目前最可扩展的、最流行的代码编辑器。而且令人惊讶的是,它是由微软制作的(我知道)。在我看来,没有任何其他IDE或编辑器能比VS Code更…

u盘显示项目不在计算机zhng,能装在u盘上的操作系统有哪些?

满意答案zhng9211推荐于 2016.08.27采纳率:51% 等级:11已帮助:7556人可装在U盘上的操作系统现在的计算机技术简直日新月异,U盘,固态硬盘等等存储介质做的可以越来越大,并越来越便宜。电脑已经不是稀罕物…

推荐 -- 极客导航,让工作学习更有效率

给大家推荐一个导航,很实用;极客导航精心挑选网址,让您的工作更有效率; 传送门: http://www.gogeeks.cn/ 转载于:https://www.cnblogs.com/JsonShare/p/7064438.html

从数组到流再到Java 8

不久前,我们将一些Eclipse插件项目升级到Java8。此后再也没有回头。 除其他事项外,使用lambda和streams API ,过滤,映射和查找集合中的元素变得更加容易和简洁。 我想到目前为止,对于大多数人来说,什么都没…

iphone型号表_机器人造iPhone,苹果奋斗八年,还是败给了富士康工人

8 年前,当蒂姆 库克在富士康观看机器人进行 iPad 实验生产视频时,似乎看到了新时代的希望。郭台铭曾表示,预计在 2014 年可以在富士康工厂中部署 100 万台机器人,进而实现高度自动化的「无人工厂」。机器之心报道,参与…

笔记本如何选择修复计算机,如何处理旧的笔记本电脑?这些操作必不可少!

原标题:如何处理旧的笔记本电脑?这些操作必不可少!如何处理旧的笔记本电脑?不要把它丢掉。那台旧笔记本电脑至少应适当回收。就算是打算仅回收旧笔记本电脑,也请确保有效擦除所有数据。备份如今,云服务如此…

Android开源工具项目集合

最近因为要去外派了,工欲善其事,必先利其器!所以又回顾了一下自己github上所收藏的项目,也算是温故而知新吧。 最流行的Android组件大全 http://www.open-open.com/lib/view/open1409108030307.html android开源项目分类汇总 http…