Skip to main content
 首页 » 编程设计

python之属性错误 : 'unicode' object has no attribute 'sleep'

2025年05月04日1352php

我收到 AttributeError: 'unicode' object has no attribute 'sleep' as specified in this question 并且我无法弄清楚为什么它会抛出该错误消息。这是将自动发布 facebook 的自动化脚本。如果有人知道我的代码有什么问题,请告诉我。代码在这里

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 
import traceback 
import string 
import xlrd 
 
#taking inputs from user----------------------------------- 
delay=input('Set Time: ') 
limit=input('Set Post Limit: ') 
valuee=limit 
count=0 
start=0 
end=valuee 
#---------------------------------------------------------- 
 
 
#open file for taking multiple accounts------------------- 
f=open('Accounts.csv') 
data=f.readlines() 
i=0 
for value in data: 
values=value.split(',') 
 
password=values[1] 
user_name=values[0] 
 
#Condition for next URLs-------------------------- 
if count>=1: 
    start=limit 
    end=start + valuee 
    limit=end 
count+=1 
#----------------------------------------------- 
chrome_options = webdriver.ChromeOptions() #going to chrome options 
chrome_options.add_argument("--start-maximized") 
prefs = {"profile.default_content_setting_values.notifications" : 2 #turn off all notifications 
         ,"profile.managed_default_content_settings.images": 2} #disable images  
chrome_options.add_experimental_option("prefs",prefs) 
driver = webdriver.Chrome(chrome_options=chrome_options) # passing paramaters to chrome 
#---------------------------------------------------------------------------------------------- 
try: 
    driver.get('https://www.facebook.com/') 
    time.sleep(2) 
 
    #puting userName and password--------------------------------------------------------- 
    driver.find_element_by_css_selector('#email').send_keys(user_name) 
    time.sleep(1) 
    driver.find_element_by_css_selector('#pass').send_keys(password, Keys.RETURN) 
    time.sleep(2) 
    driver.get('https://www.facebook.com/pages/?category=your_pages') 
    driver.find_element_by_css_selector('._1vgt.ellipsis._349g a').click() 
    pageUrl=driver.current_url 
    raw_input('>>') 
except: 
    traceback.print_exc() 
    raw_input('Something Wrong..! please hit Enter >>\n') 
    driver.quit() 
    continue 
 
#file for report----- 
report=open('Report/'+user_name+'.csv','w') 
 
 
#reading file of excel-------------------------------------------------------------------- 
workbook = xlrd.open_workbook('links.xlsx') 
sheet = workbook.sheet_by_index(0) 
 
#print commands: 
print '\n******************** Auto Posting Start ********************\n' 
#print 'Using Proxy:',proxy 
print 'Using Email:',user_name 
 
for row in range(start, end): 
    driver.get(pageUrl) 
    time.sleep(2) 
    try: 
        #title=value=sheet.cell(row, 0).value 
        disc=value=sheet.cell(row, 0).value 
        try: 
 
            driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % 5) 
            time.sleep(2) 
            try: 
                driver.find_element_by_css_selector('._1hib._4bl9').click() 
                time.sleep(4) 
            except: 
                pass 
 
            try: 
                driver.find_element_by_css_selector('.notranslate._5rpu').send_keys(disc) 
                time.sleep(3) 
            except: 
                driver.find_element_by_css_selector('._4h98.navigationFocus').send_keys(disc) 
                time.sleep(3) 
 
            driver.find_element_by_css_selector('._1mf7._4jy0._4jy3._4jy1._51sy.selected._42ft').click() 
            time.sleep(6) 
 
            driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
            time.sleep(4) 
 
            #get latest post url--------------------------- 
            for elem in driver.find_elements_by_css_selector('._5pcq'): 
                try: 
                    tim=elem.find_element_by_css_selector('._5ptz.timestamp.livetimestamp') 
                    time=tim.text 
                    if time=='Just now': 
                        print'great' 
                        href=elem.get_attribute('href') 
                        print href 
                        raw_input('>>') 
                        break 
                    else: 
                        continue 
                except: 
                    continue 
 
            print 'Report Url:',href 
            report.write(href+'\n')        
        except: 
            traceback.print_exc() 
            pass 
        time.sleep(delay) 
    except: 
        traceback.print_exc() 
        print'Urls Completed!' 
        break 
 
report.close() 
driver.quit() 
print'Thanks For Using..' 

请您参考如下方法:

这是因为你在下一行用字符串覆盖了时间

tim=elem.find_element_by_css_selector('._5ptz.timestamp.livetimestamp') 
time=tim.text 
if time=='Just now': 

所以时间不再是一个模块,它只是一个 unicode 文本。您需要将该变量重命名为其他名称