head={
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"
}
page_sum = input("请输入下载页数")
baseurl = "https://wallhaven.cc/search?q=food&page="
for page in range(0,int(page_sum),1):
url = baseurl+str(page+1)
request = urllib.request.Request(url,headers=head)
response = urllib.request.urlopen(request)
html = response.read().decode("utf-8")
urls = re.findall('a class="preview" href="(.*?)"',html)
for i in range(24):
x = (urls[i][23:])
a = x[0]+x[1]
UrlImg = "https://w.wallhaven.cc/full/"+a+"/wallhaven-"+x+".jpg"
code = requests.get(UrlImg).status_code
if code == 404:
****UrlImg = "https://w.wallhaven.cc/full/" + a + "/wallhaven-" + x + ".png"****
print(i+1,UrlImg)
file_name = UrlImg.split('/')[-1]
response = requests.get(UrlImg,headers=head)
with open(file_name,"wb")as f:
f.write(response.content)
import sys
import pymysql
from PIL import Image
import os
database = pymysql.connect(host="127.0.0.1", user="root", passwd="*****", db="fee", charset='utf8MB4')
cursor = database.cursor()
sql = "INSERT INTO image (ip,img,img_type) VALUES (%s, %s, %s)"
cursor.execute(sql, ****UrlImg****)**#UrlImg表示上面的图片地址,此行报错-**
database.commit()
cursor.close()
database.close()
有无大佬可以解决呀ku
问题分析:TypeError: not enough arguments for format string
这个错误意思是没有充足的参数去填充字符串
sql = "INSERT INTO image (ip,img,img_type) VALUES (%s, %s, %s)"
这一句需要 3个参数填充 sql语句
然鹅在下面:
cursor.execute(sql, ****UrlImg****)**#UrlImg表示上面的图片地址,此行报错-**
只传入了图片地址,正确应该为下:
param=(ip,img,img_type)
cursor.execute(sql, param)
ip,img,img_type 为爬虫解析的实际内容
****UrlImg = "https://w.wallhaven.cc/full/" + a + "/wallhaven-" + x + ".png"****
这行代码是什么?
cursor.execute(sql, ****UrlImg****)报错,就是****UrlImg****有问题,需要类似(ip,img,img_type)的数据