用Python实现Flickr照片文本数据下载入库及图片保存(第一次帮忙)
用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照片文本数据下载入库及图片保存(第一次帮忙)相关推荐
- Python基于分隔符的文本数据存取
Python基于分隔符的文本数据存取 CSV模块读写 Numpy库读写 使用pandas库读写 三种方式的区别 基于分隔符的文本数据文件以行尾各条数据的分隔,以各种分隔符(同一个文本数据文件中通常只使 ...
- Python实现不规则txt文本数据读取并转换为csv文本
1.需求描述 现在有如下数据文件: id name age 1 小明 13 2 小张 15 3 小王 13 4 张三 14 5 王五 18 需要将上述数据转化为csv文本数据,众所周知,csv是逗号分 ...
- Python 文件操作中的读写模式:open(path, ‘-模式-‘,encoding=‘UTF-8‘)+python读写文件txt +文本数据预处理
python读写txt文件 文件的打开的两种方式f = open("data.txt","r") #设置文件对象 f.close() #关闭文件#为了方便,避免 ...
- python读取文本两个数字的成语_【十分钟Python知识点】让文本数据更加生动——词云工具推荐...
stylecloud 是一个 Python 包,它基于流行的 word_cloud 包,并添加了一些有用的功能,从而创建出独特的词云.stylecloud 具备以下特点:为词云提供(任意大小)的图标形 ...
- 基于python包sentinelsat的Sentinel-2数据下载
关于Sentinel-2数据下载和预处理的介绍,网上已经有很多很好的资源,可以参考超级禾欠水 的系列文章. sentinelsat包虽然提供了下载数据的功能,但是有时候受网速的影响,下载可能会中断,这 ...
- 【Java数据库】CLOB BLOB 在数据库中存入/取出大量文本数据、二进制文件(图片)
CLOB(Character Large Object) – 用于存储大量的文本数据 – 大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的 方式来处理的.而非一般的字段,一次即可读 ...
- 通过python爬取笔趣阁小说,获取图片保存本地,数据保存mysql
通过python爬取小说图片.小说名称.作者.章节.内容.直接上代码 import requests import time from bs4 import BeautifulSoup from qu ...
- python爬取天眼查数据(未破解图片验证及ajax版)
import time import requests from bs4 import BeautifulSoup import lxml import json import copy import ...
- 微信图片上传下载(将图片保存到服务器里的文件路径)
***********微信浏览器里的H5页面******图文发表******** 引用js <script type="text/javascript" src=" ...
最新文章
- iOS-FXDanmaku弹幕库介绍、相关技术分享
- Python进阶11-标准库介绍02
- svg 动画_根据AI导出的SVG path制作SVG线条动画
- a 标签中 rel=“noopener noreferrer“属性的含义和功能
- 李萍matlab实验报告,李萍, 张磊, 王垚廷. 基于Matlab的偏微分方程数值计算[J]. 齐鲁工业大学学报, 2017, 31(4): 39-43....
- 案例-简介小米侧边栏(HTML、CSS)
- 关键字nullable,nonnull,null_resettable,_Null_unspecified详解
- Web Clip 图片变淡变浅变灰解决方案
- KVM 介绍(5):libvirt 介绍 [ Libvrit for KVM/QEMU ]
- [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
- python爬豆瓣top250书籍_python爬虫练习-爬取豆瓣图书top250
- 在轮询系统如何将A站订单在B站自动建立,并调用B站产品
- javaSE学习笔记_目录
- 计算机毕业设计SSM_旅游系统【附源码数据库】
- NLP入门--Word2Vec(CBOW)实战
- 分布式系统架构---SOA服务体系架构
- python制作关键图谱_知识图谱neo4j—利用python进行知识入库
- android加载网络gif图片不显示不出来的,android显示网络gif图片
- 想借上市洗白的比特大陆
- 3D格式转换工具HOOPS Exchange最全技术指南(一):4大功能特征与典型使用场景
热门文章
- Linux 磁盘管理-分区管理-磁盘修复-断电导致磁盘损坏【fsck】修复异常磁盘
- [Untiy]贪吃蛇大作战(四)——游戏主界面
- 想抵御“黑客”和“黑产”,智能 + 安全能不能有高招?
- 《罪犯与女儿》,看完你会热泪盈眶
- 2021-03-11 舒尔特方格 python3 pyqt5
- 浙江外国语学校计算机行不行,浙江外国语学院怎么样
- RTA PAVIA CSD ET04控制器
- nginx编译报错 cc1:所有的警告都被当作是错误 make[1]:*** [objs/Makefile:446:objs/src/core/nginx
- 线结构光光条直线方程提取问题分析
- React学习(6)-React中组件的数据-state