我用 instabot 构建了一个简单的 instagram 机器人,但它给了我以下错误:
PS C:\Users\sianu\instagram_bot> & C:/Users/sianu/AppData/Local/Programs/Python/Python39/python.exe c:/Users/sianu/instagram_bot/main.py
The json file does not exist
[]
2021-07-30 08:25:31,552 - INFO - Instabot version: 0.117.0 Started
2021-07-30 08:25:31,559 - INFO - Not yet logged in starting: PRE-LOGIN FLOW!
2021-07-30 08:25:34,519 - INFO - Logged-in successfully as '1970s_sheffield'!
2021-07-30 08:25:34,519 - INFO - LOGIN FLOW! Just logged-in: True
Traceback (most recent call last):
File "c:\Users\sianu\instagram_bot\main.py", line 42, in <module>
upload_post(filename)
File "c:\Users\sianu\instagram_bot\main.py", line 30, in upload_post
bot.upload_photo(filename,
File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\bot\bot.py", line 806, in upload_photo
return upload_photo(self, photo, caption, upload_id, from_video, options)
File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\bot\bot_photo.py", line 26, in upload_photo
result = self.api.upload_photo(
File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\api\api.py", line 825, in upload_photo
return upload_photo(
File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\api\api_photo.py", line 132, in upload_photo
if not compatible_aspect_ratio(get_image_size(photo)):
File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\api\api_photo.py", line 197, in get_image_size
with open(fname, "rb") as fhandle:
FileNotFoundError: [Errno 2] No such file or directory: 'Ashgate Road.jpg'
2021-07-30 08:25:47,452 - INFO - Total requests: 31
PS C:\Users\sianu\instagram_bot>
我的代码如下:
from instabot import Bot
import os
def delete_files():
if os.path.exists("config/*cookie.json"):
os.remove("config/*cookie.json")
else:
print("The json file does not exist")
directory = "C:/Users/sianu/instagram_bot/img"
files_in_directory = os.listdir(directory)
filtered_files = [file for file in files_in_directory if file.endswith(".REMOVE_ME")]
print(filtered_files)
for file in filtered_files:
path_to_file = os.path.join(directory, file)
os.remove(path_to_file)
def get_picture():
directory = "C:/Users/sianu/instagram_bot/img"
for filename in os.listdir(directory):
if filename.endswith(".jpg"):
return filename
def upload_post(filename):
bot = Bot()
bot.login(username = "xxx",
password = "xxx")
hashtags = " #sheffield #1970ssheffield #1970s #vintagepics #cities #1970scities #city #cityonthemove #sheffieldissuper"
bot.upload_photo(filename,
caption = filename + hashtags)
if __name__ == "__main__":
delete_files()
filename = get_picture()
upload_post(filename)
我试过只调用 get_picture() 方法并打印文件名,它可以毫无问题地执行此操作,所以我不确定为什么当它尝试上传此文件时,它说没有这样的文件?该代码以前也曾运行过,所以我不确定发生了什么。