http://global.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=en-US
其中idx表示倒数第几张图片0就是今天的1就是昨天的几就是几天前的每日图片
返回XML简单明了
用python获取返回的XML并用正则表达式找出图片的URL,用PyMySQL将其插入数据库供日后使用
我服务器上的代码如下
1 from urllib import request 2 import re 3 import requests 4 import pymysql 5 6 7 def insertPic(picName): 8 connect = pymysql.connect(host='localhost', user='jeff', password='xxxx', db='jeff',charset='utf8') 9 cur = connect.cursor() 10 sql = 'INSERT bingPic(name) VALUES(%s)' 11 cur.execute(sql, (picName)) 12 connect.commit() 13 connect.close() 14 15 def getXML(url): 16 page = request.urlopen(url) 17 return page.read().decode('utf-8') 18 19 20 def saveImage(directory, imageURL, imageName): 21 image = open(directory + imageName, 'wb') 22 image.write(requests.get(imageURL).content) 23 image.close() 24 25 26 globalBing = 'http://global.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=en-US' 27 chinaBing = 'http://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1' 28 path = '/home/jeff/web/resources/pic/bing/' 29 30 xmlGlobal = getXML(globalBing) 31 32 p = re.compile("<url>.*</url>") 33 result = re.findall(p, xmlGlobal) 34 picUrl = 'http://global.bing.com' + result[0][5:-6] 35 picName = picUrl.split('/')[-1] 36 37 saveImage(path, picUrl, picName) 38 insertPic(picName) 39 print(picName)