# imports
import random
import time
from selenium import webdriver
class Commenter:
# declares variables for commentor script
def __init__(self):
self.error = "[!] There was an error!"
self.url = " "
self.browser = webdriver.Chrome(executable_path = '/Users/carsonrhodes/Desktop/Chrome Driver/chromedriver')
self.comment_box = " "
# logs user into browser so that they may comment on a video.
def login(self):
# URL for google login
url = "https://accounts.google.com/servicelogin"
try:
browser.get(url)
print("What is your Google email?")
email = input("")
print("What is your Google password?")
password = input("")
email_input = browser.find_element_by_type("email")
email_input.send_keys(email, Keys.ENTER)
password_input = browser.find_element_by_type("password")
password_input.send_keys(password, Keys.ENTER)
except:
print(" ")
print(self.error)
# fetches input URL from user
def fetch_input(self):
print("- ")
print("What video do you want to comment on?")
print("- ")
self.url = input("Enter URL: ") #sample url : https://www.youtube.com/watch?v=SEpmYLu-CCA
# finds comment box so that the script can comment.
def find_comment_box(self):
try:
self.browser.get(self.url)
self.comment_box = self.browser.find_element_by_id(contenteditable-root)
except:
print(self.error)
# generates a comment from CSV file.
def generate_comment(self):
comments = []
try:
with open('Comments for Bot .csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter='\n')
for row in csv_reader:
comments.append(row)
return(random.choice(comments))
except:
print(" ")
print(self.error)
# fetches comment from generating script
def fetch_comment(self):
comment = self.generate_comment()
print("[!] Comment generated successfully!")
return(comment)
# enters comment into comment box on YouTube
def enter_comment(self):
self.comment_box.send_keys(self.fetch_comment())
Commenter = Commenter() #creates class (cannot call methods without calling class)
# code starts here:
Commenter.login()
Commenter.fetch_input()
Commenter.find_comment_box()
Commenter.generate_comment()
What seems to be wrong here? I can't figure it out.
Please, post the entire traceback that you get.
Take a time to read
What to include in a post
You should get also IndentationError (e.g. look at lines 54-64)
(May-31-2019, 04:18 PM)buran Wrote: [ -> ]Please, post the entire traceback that you get.
Take a time to read What to include in a post
You should get also IndentationError (e.g. look at lines 54-64)
Yes, my apologies regarding the tags,
Right off the bat, I get an error from the login method (the except block is ran)
When I insert the link, I get a syntax error.
Here is the console when the program is ran:
Error:
[!] There was an error!
-
What video do you want to comment on?
-
Enter URL: https://www.youtube.com/watch?v=SEpmYLu-CCA
Traceback (most recent call last):
File "/Users/carsonrhodes/PycharmProjects/dyl/venv/Main.py", line 97, in <module>
Commenter.fetch_input()
File "/Users/carsonrhodes/PycharmProjects/dyl/venv/Main.py", line 58, in fetch_input
self.url = input("Enter URL: ") #sample url : https://www.youtube.com/watch?v=SEpmYLu-CCA
File "<string>", line 1
https://www.youtube.com/watch?v=SEpmYLu-CCA
^
SyntaxError: invalid syntax
Process finished with exit code 1
Which python version are you using?
this looks strange:
Error:
File "<string>", line 1
https://www.youtube.com/watch?v=SEpmYLu-CCA
for start remove the try/except block from the login() method to fix this error. when using all-catch exception you mask what is going on
also don't use
Commenter
as instance variable, use
commenter
Quote:self.url = input("Enter URL: ")
python2.x is
raw_input()
Either use python3.x or change all input() to raw_input()
(Jun-10-2019, 01:36 AM)metulburr Wrote: [ -> ]Quote:self.url = input("Enter URL: ")
python2.x is raw_input()
Either use python3.x or change all input() to raw_input()
Hey
I changed all my inputs to raw_inputs, thank you for this tip.
I still have my except blocks going off and I'm not quite sure why.
My login method doesn't seem to work at all.
# imports
import random
import time
from selenium import webdriver
class Commenter:
# declares variables for commentor script
def __init__(self):
self.error = "[!] There was an error!"
self.url = " "
self.browser = webdriver.Chrome(executable_path = '/Users/carsonrhodes/Desktop/Chrome Driver/chromedriver')
self.comment_box = " "
# logs user into browser so that they may comment on a video.
def login(self):
# URL for google login
url = "https://accounts.google.com/servicelogin"
try:
browser.get(url)
time.sleep(4)
print("What is your Google email?")
email = raw_input("")
print("What is your Google password?")
password = raw_input("")
time.sleep(3)
email_input_box = browser.find_element_by_type("email")
email_input_box.send_keys(email, Keys.ENTER)
password_input_box = browser.find_element_by_type("password")
password_input_box.send_keys(password, Keys.ENTER)
except:
print(" ")
print(self.error)
# fetches input URL from user
def fetch_input(self):
print("- ")
print("What video do you want to comment on?")
print("- ")
self.url = raw_input("Enter URL: ") #sample url : https://www.youtube.com/watch?v=SEpmYLu-CCA
# finds comment box so that the script can comment.
def find_comment_box(self):
try:
self.browser.get(self.url)
self.comment_box = self.browser.find_element_by_id(contenteditable-root)
except:
print(self.error)
# generates a comment from CSV file.
def generate_comment(self):
comments = []
try:
with open('Comments for Bot .csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter='\n')
for row in csv_reader:
comments.append(row)
return(random.choice(comments))
except:
print(" ")
print(self.error)
# fetches comment from generating script
def fetch_comment(self):
comment = self.generate_comment()
print("[!] Comment generated successfully!")
return(comment)
# enters comment into comment box on YouTube
def enter_comment(self):
self.comment_box.send_keys(self.fetch_comment())
Commenter = Commenter() #creates class (cannot call methods without calling class)
# code starts here:
Commenter.login()
Commenter.fetch_input()
Commenter.find_comment_box()
Commenter.generate_comment()
Change your try/except blocks, so the exception that happens is actually displayed
try:
...
...
except Exception as exception:
print(exception)