用Python实现Flickr照片文本数据下载入库及图片保存_fbc3173的博客-CSDN博客 来源

#原来的代码
#!/usr/bin/python
import requests
import json
import time
import random
import pymysql
import urllib
import os
#创建保存图片的文件夹
path='保存图片的路径'
if not os.path.isdir(path):os.makedirs(path)
paths = path+'\\'
#处理特殊字符
def chuli(self):self = self.replace( "'", "\\'")#self = self.replace("/", "")#self =self. replace(chr(0), "")return self
#主要的url
api='https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=你的key&text=&min_taken_date=2018-05-04&max_taken_date=2018-05-14&woe_id=2347570&extras=description,license,date_upload,date_taken,owner_name,icon_server,original_format,last_update,geo,tags,machine_tags,o_dims,views,media,path_alias,url_sq,url_t,url_s,url_q,url_m,url_n,url_z,url_c,url_l,url_o&per_page=500&format=json&sort=date-taken-asc&jsoncallback=?'
r= requests.get(api)
a = json.loads(r.text[14:-1])
# 打开数据库连接
db = pymysql.connect("localhost","root","123456","mysql" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
print(a["photos"]["pages"])
for i in range(a["photos"]["pages"]-1):#进行翻页,循环获得每页的urltry:s=requests.get(api+"&page="+str(i+1))print(api+"&page="+str(i+1))b=json.loads(s.text[14:-1])#去掉外层的jsonFlickrApi()这几个字符串后解析成json的格式for i in range(len(b["photos"]["photo"])):#循环获取每页每个照片数据,其中b["photos"]["photo"]为列表,则我们只需按c = b["photos"]["photo"]              #序号获取每个照片数据print(c[i]["id"],c[i]["owner"],c[i]["datetaken"],c[i]["latitude"],c[i]["longitude"],c[i]["accuracy"],\c[i]["place_id"],c[i]["woeid"],c[i]["url_z"],c[i]["description"]["_content"])content=chuli(c[i]["description"]["_content"])imgurl = c[i]["url_z"]try:urllib.request.urlretrieve(imgurl,'{}{}.jpg'.format(paths,c[i]["id"]))print('图片下载成功')except Exception as e:print('爬取图片失败')cursor.execute("insert into Hawaii5_4_14(id_1,owner,datetaken,latitude,longitude,accuracy,place_id,woeid,url_z,content) \VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"%(c[i]["id"],c[i]["owner"],c[i]["datetaken"],\c[i]["latitude"],c[i]["longitude"],c[i]["accuracy"],c[i]["place_id"],c[i]["woeid"],c[i]["url_z"],content))db.commit()print('第',i+1,'条数据成功插入')time.sleep(2)#休息2秒,防止服务器拒绝访问。except Exception as e:print('爬取失败')
# 关闭数据库连接
db.close()


把get返回的数据改一下保存为json,用firfox打开

看了一下只需改URL和删除不存在的json数据

mysql的安装MySQL的安装与配置–详细教程 - Winton-H - 博客园

pymysql的使用 Python连接MySQL数据库之pymysql模块使用 - 虫洞小鳗鱼 - 博客园

mysql -u root -p #登录数据库cerate database 你创建的数据库名;#创建数据库create table 你要的段名 (id int auto_increment primary key,id_1 varchar(30) not null,owner varchar(30) not null ,url_z varchar(300) not null );#创建段名和需要的分支
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import json
import time
import random
import pymysql
import urllib
import os
#创建保存图片的文件夹
path='保存图片的路径'
url_time = "{}-{}-{}".format(time.localtime(time.time())[0],time.localtime(time.time())[1],time.localtime(time.time())[2]-2)
key_api = "你的key"
proxies = {'https': 'https://127.0.0.1:1080','http': 'http://127.0.0.1:1080'}
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36'}if not os.path.isdir(path):os.makedirs(path)
paths = path+'\\'
#处理特殊字符
def chuli(self):self = self.replace( "'", "\\'")#self = self.replace("/", "")#self =self. replace(chr(0), "")return self
#主要的url
api='https://api.flickr.com/services/rest?extras=can_comment,can_print,count_comments,count_faves,description,isfavorite,license,media,needs_interstitial,owner_name,path_alias,realname,rotation,url_sq,url_q,url_t,url_s,url_n,url_w,url_m,url_z,url_c,url_l&per_page=50&page=2&date={}&method=flickr.interestingness.getList&csrf=1608255676:kzbh2r1ldkg:6dcc1ea1648b001a5efb7d2e3c6ea762&api_key={}&format=json&hermes=1&hermesClient=1&reqId=d5041c76'.format(url_time,key_api)
r= requests.get(url=api,headers=headers,proxies=proxies)
a = json.loads(r.text[14:-1])
# 打开数据库连接db = pymysql.connect(host="localhost",user = "root",password="密码",database="数据库",charset="utf8")# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
print(a["photos"]["pages"])#create the object, assign it to a variable
proxy = urllib.request.ProxyHandler(proxies)
# construct a new opener using your proxy settings
opener = urllib.request.build_opener(proxy)
# install the openen on the module-level
urllib.request.install_opener(opener)for i in range(a["photos"]["pages"]-1):#进行翻页,循环获得每页的urltry:s=requests.get(url=(api+"&page="+str(i+1)),headers=headers,proxies=proxies)print(api+"&page="+str(i+1))b=json.loads(s.text[14:-1])#去掉外层的jsonFlickrApi()这几个字符串后解析成json的格式for i in range(len(b["photos"]["photo"])):#循环获取每页每个照片数据,其中b["photos"]["photo"]为列表,则我们只需按c = b["photos"]["photo"]#序号获取每个照片数据print("1")print(c[i]["id"],c[i]["owner"])content=chuli(c[i]["description"]["_content"])print("12")imgurl = c[i]["url_z"]try:urllib.request.urlretrieve(imgurl,'{}{}.jpg'.format(paths,c[i]["id"]))print('图片下载成功')except Exception as e:print('爬取图片失败')cursor.execute("insert into 你的段(id_1, owner, url_z) VALUES('%s','%s','%s');"%(c[i]["id"],c[i]["owner"],c[i]["url_z"]))db.commit()print('第',i+1,'条数据成功插入')time.sleep(2)#休息2秒,防止服务器拒绝访问。except Exception as e:print(e)print('爬取失败')
# 关闭数据库连接
db.close()

用Python实现Flickr照片文本数据下载入库及图片保存_fbc3173的博客-CSDN博客 来源

用Python实现Flickr照片文本数据下载入库及图片保存(第一次帮忙)相关推荐

  1. Python基于分隔符的文本数据存取

    Python基于分隔符的文本数据存取 CSV模块读写 Numpy库读写 使用pandas库读写 三种方式的区别 基于分隔符的文本数据文件以行尾各条数据的分隔,以各种分隔符(同一个文本数据文件中通常只使 ...

  2. Python实现不规则txt文本数据读取并转换为csv文本

    1.需求描述 现在有如下数据文件: id name age 1 小明 13 2 小张 15 3 小王 13 4 张三 14 5 王五 18 需要将上述数据转化为csv文本数据,众所周知,csv是逗号分 ...

  3. Python 文件操作中的读写模式:open(path, ‘-模式-‘,encoding=‘UTF-8‘)+python读写文件txt +文本数据预处理

    python读写txt文件 文件的打开的两种方式f = open("data.txt","r") #设置文件对象 f.close() #关闭文件#为了方便,避免 ...

  4. python读取文本两个数字的成语_【十分钟Python知识点】让文本数据更加生动——词云工具推荐...

    stylecloud 是一个 Python 包,它基于流行的 word_cloud 包,并添加了一些有用的功能,从而创建出独特的词云.stylecloud 具备以下特点:为词云提供(任意大小)的图标形 ...

  5. 基于python包sentinelsat的Sentinel-2数据下载

    关于Sentinel-2数据下载和预处理的介绍,网上已经有很多很好的资源,可以参考超级禾欠水 的系列文章. sentinelsat包虽然提供了下载数据的功能,但是有时候受网速的影响,下载可能会中断,这 ...

  6. 【Java数据库】CLOB BLOB 在数据库中存入/取出大量文本数据、二进制文件(图片)

    CLOB(Character Large Object) – 用于存储大量的文本数据 – 大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的 方式来处理的.而非一般的字段,一次即可读 ...

  7. 通过python爬取笔趣阁小说,获取图片保存本地,数据保存mysql

    通过python爬取小说图片.小说名称.作者.章节.内容.直接上代码 import requests import time from bs4 import BeautifulSoup from qu ...

  8. python爬取天眼查数据(未破解图片验证及ajax版)

    import time import requests from bs4 import BeautifulSoup import lxml import json import copy import ...

  9. 微信图片上传下载(将图片保存到服务器里的文件路径)

    ***********微信浏览器里的H5页面******图文发表******** 引用js <script type="text/javascript" src=" ...

最新文章

  1. iOS-FXDanmaku弹幕库介绍、相关技术分享
  2. Python进阶11-标准库介绍02
  3. svg 动画_根据AI导出的SVG path制作SVG线条动画
  4. a 标签中 rel=“noopener noreferrer“属性的含义和功能
  5. 李萍matlab实验报告,李萍, 张磊, 王垚廷. 基于Matlab的偏微分方程数值计算[J]. 齐鲁工业大学学报, 2017, 31(4): 39-43....
  6. 案例-简介小米侧边栏(HTML、CSS)
  7. 关键字nullable,nonnull,null_resettable,_Null_unspecified详解
  8. Web Clip 图片变淡变浅变灰解决方案
  9. KVM 介绍(5):libvirt 介绍 [ Libvrit for KVM/QEMU ]
  10. [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
  11. python爬豆瓣top250书籍_python爬虫练习-爬取豆瓣图书top250
  12. 在轮询系统如何将A站订单在B站自动建立,并调用B站产品
  13. javaSE学习笔记_目录
  14. 计算机毕业设计SSM_旅游系统【附源码数据库】
  15. NLP入门--Word2Vec(CBOW)实战
  16. 分布式系统架构---SOA服务体系架构
  17. python制作关键图谱_知识图谱neo4j—利用python进行知识入库
  18. android加载网络gif图片不显示不出来的,android显示网络gif图片
  19. 想借上市洗白的比特大陆
  20. 3D格式转换工具HOOPS Exchange最全技术指南(一):4大功能特征与典型使用场景

热门文章

  1. Linux 磁盘管理-分区管理-磁盘修复-断电导致磁盘损坏【fsck】修复异常磁盘
  2. [Untiy]贪吃蛇大作战(四)——游戏主界面
  3. 想抵御“黑客”和“黑产”,智能 + 安全能不能有高招?
  4. 《罪犯与女儿》,看完你会热泪盈眶
  5. 2021-03-11 舒尔特方格 python3 pyqt5
  6. 浙江外国语学校计算机行不行,浙江外国语学院怎么样
  7. RTA PAVIA CSD ET04控制器
  8. nginx编译报错 cc1:所有的警告都被当作是错误 make[1]:*** [objs/Makefile:446:objs/src/core/nginx
  9. 线结构光光条直线方程提取问题分析
  10. React学习(6)-React中组件的数据-state