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通过计算转换,将这些模拟量信号转换为内…

Java 8 Streams:过滤和谓词否定

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

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

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

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

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

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

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

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

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

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

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

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

Android开源工具项目集合

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

Android-Universal-Image-Loader学习笔记(3)--内存缓存

前面的两篇博客写了文件缓存。如今说说Android-Universal-Image-Loader的内存缓存。该内存缓存涉及到的类如图所看到的 这些类的继承关系例如以下图所看到的: 如同文件缓存一样,内存缓存涉及的接口也有两个:MemoryCacheAware 和MemoryCache&a…

css设置字体颜色怎么设,css里面怎么设置字体颜色?

在html中我们经常要用到css样式来美化html标签的一些不足之处,今天我们就来说说如何用css的基本样式来改变文本的颜色,文章通俗易懂,希望大家看完后能练习练习加深印象。一、首先我们先给大家看个html字体的基础代码:HTML中文网字…

visio科学图形包_科学网—科研必备:几款好用的流程图工具,助力你的论文/科研绘图...

写SCI论文常常会遇到一个问题——如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理、如何应用存在疑问;尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了解研究内容&#xff…

网络通信基础(草稿)

应用层:httpd/ssh/ 等软件 应用层功能:规定应用程序的数据格式。传输层:tcp/udp --> port,唯一标识一个主机上的某个进程 端口范围0-65535,0-1023为系统占用端口 传输层的功能:建立端口到端口的通信…

JSF范围教程– JSF / CDI会话范围

会话作用域跨越多个HTTP请求-响应周期(理论上是无限的)。 当您需要每个HTTP请求-响应周期进行一次交互时,请求作用域在任何Web应用程序中都非常有用。 但是,当您需要对属于用户会话的任何HTTP请求-响应周期可见的对象时&#xf…

数字通信原理_光耦继电器在实际应用中的作用以及工作原理!

光耦继电器---先进光半导体由于光耦继电器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以,它在长线传输信…

css的fill属性,css column-fill属性怎么用

css column-gap属性定义及用法在css中,column-gap属性通常和columns、column-count等分列属性一起使用,用来设置元素内容分列(多列布局)后列与列之间的距离css column-gap属性语法格式css语法:column-gap: length / normal;(例:co…