Python 有压痕误差的
我的问题在于以下代码:Python 有压痕误差的,python,python-3.x,Python,Python 3.x,我的问题在于以下代码: import wget from selenium import webdriver from selenium.webdriver.chrome.options import Options import json import codecs import os import os.path import pyautogui import pyperclip import time import datetime chrome_options = Options()
import wget
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import json
import codecs
import os
import os.path
import pyautogui
import pyperclip
import time
import datetime
chrome_options = Options()
chrome_options.add_argument("--headless")
browser = webdriver.Chrome(options=chrome_options)
url = "https://www.youtube.com/channel/UC1M9tgEZqKMihgnYO33GvTQ/videos"
browser.get(url)
video = browser.find_element_by_xpath('//*[@id="video-title"]')
video_title = str(video.text)
with open('data.json', 'r') as f:
data = json.load(f)
past_title = data["title"]
if past_title == video_title:
print("Don't post")
l_updated=data["last_updated"]
print("Lastest video upload was on " + l_updated)
else:
video.click()
video_link = str(browser.current_url)
video_id = video_link.split("=", 1)[1]
browser.quit()
group = ['100003333789620']
time.sleep(5)
pyautogui.keyDown('ctrl')
pyautogui.keyDown('t')
pyautogui.keyUp('t')
pyautogui.keyUp('ctrl')
for i in range(len(group)):
link = 'https://www.facebook.com/messages/t/'+group[i]
pyautogui.typewrite(link)
pyautogui.typewrite('\n')
print("Waiting for 10 seconds\n")
time.sleep(10)
pyautogui.moveTo(2034, 699, 4)
pyautogui.click()
time.sleep(2)
print("Writing message about the new uploaded lecture\n")
pyperclip.copy("Христо's Bot reporting for duty! Новата лекция е качена тук " +video_link)
pyautogui.hotkey("ctrl", "v")
time.sleep(4)
pyautogui.keyDown('enter')
pyautogui.keyUp('enter')
print("Message was successfully sent!")
time.sleep(2)
pyautogui.keyDown('ctrl')
pyautogui.keyDown('w')
pyautogui.keyUp('w')
pyautogui.keyUp('ctrl')
print("Closing the tab now and storing data!")
data["title"]=video_title
data["last_updated"]=str(datetime.date.today())
with open("data.json","w") as f:
json.dump(data, f)
time.sleep(5)
问题是,我想在else语句中把所有内容放在video\u link=str(browser.current\u url)video\u id=video\u link.split(“=”,1)[1]
之后,但我一直收到缩进错误。代码可以工作,但它不检查json文件中是否存在视频标题(我尝试将其编码为utf-8,因为视频标题是西里尔文。它对其进行编码,但出于某种奇怪的原因,它不想从中读取,并抛出了一些我无法修复的charmap错误)快速更新
我就这样把它修好了
with open("data.json", "w", encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False)
及
我可能想得太多了。
PyCharm也修复了凹痕
谢谢大家的帮助 charmap是一种编码器。你应该改变这一点。我想你没能把它改成utf-8。你能发送完整的错误信息吗?关于你的缩进,你在混合标签和空格。使用适当的IDE为您转换。这样的IDE还将告诉您使用
video\u link
,但您仅定义了link
。请尝试PyCharm。字符映射错误是以下“'charmap'编解码器无法解码位置20中的字节0x90:字符映射到”
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)