安装库
pip install bingart
抓取cookie
在代理开启的情况下,打开bing image creator
按下f12,如图,记录获取 _U 和 KievRPSSecAuth 的值
查看你代理的socks端口
如图(左下角),我的socks代理端口是10808,即 “socks5://127.0.0.1:10808”
源码
源码
在设置了socks代理后,即可正常调用
from bingart import BingArt
os.environ["http_proxy"]="socks5://127.0.0.1:10808" #sockProxy即你代理的socks端口
os.environ["https_proxy"]="socks5://127.0.0.1:10808"
bing_art = BingArt(auth_cookie_U='...', auth_cookie_KievRPSSecAuth='...')
try:
results = bing_art.generate_images('sunset')
print(results)
finally:
bing_art.close_session()
封装函数
import os
import httpx
from bingart import BingArt
#随机字符串,生成文件名,用以保存图片
def random_str(random_length=6,chars='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789@$#_%'):
string = ''
length = len(chars) - 1
# random = Random()
for i in range(7):
string += ((chars[random.randint(0, length)]))
return string
#bingCreate函数实现调用并下载图片,接收四个参数,socks代理地址,绘画提示词,_U 和 KievRPSSecAuth
async def bingCreate(sockProxy,prompt,_U,kiev):
os.environ["http_proxy"]=sockProxy
os.environ["https_proxy"]=sockProxy
bing_art = BingArt(auth_cookie_U=_U,auth_cookie_KievRPSSecAuth=kiev,auto=True)
results = bing_art.generate_images(prompt)
#print(results)
paths=[]
for i in results.get("images"):
url2 = i.get("url")
async with httpx.AsyncClient(timeout=40) as client:
r1 = await client.get(url2)
path = "./" + random_str() + ".png"
paths.append(path)
with open(path, "wb") as f:
f.write(r1.content)
#返回一个路径的列表
return paths
好了,祝你玩得愉快