Почему этот сценарий Python работает на Ubuntu, но не распачин? -- python поле с участием ubuntu поле с участием smtp поле с участием beautifulsoup поле с участием raspbian пол Связанный проблема

Why does this python script work on Ubuntu but not Raspbian?


0
vote

проблема

русский

Друг, и я создал следующий скрипт, использующий BeautifulSoup, чтобы получить HTML страницы работы, а затем добавить работу на массив, затем файл, затем отправляйте задание в читаемому формату для себя. Сценарий работает на Ubuntu, но на моей Raspberry Pi, который использует распабиан, это не работает.

Единственное сообщение, которое я вижу, при работе с терминала: «Конец файла» и «Начните писать ...», которые являются строками в коде. При запуске от Pi нет сообщений об ошибках, но ничто не прилагается к массиву, а электронные письма не отправляются.

Может кто-нибудь посмотреть? Спасибо.

 <код> import urllib2, email, smtplib, os.path import cPickle as pickle from bs4 import BeautifulSoup  class Job:     """docstring for Job"""     def __init__(self, title, date, url):         self.title = title         self.date = date         self.url = "http://www.forensicfocus.com/"+url     def describJob(self):         return (self.title +" "+ self.date +" "+ self.url)  def createJobsArray():     soup = BeautifulSoup(urllib2.urlopen('http://www.forensicfocus.com/jobs').read())     bigFatString = soup.find_all('a')     #print(bigFatString) #this gets webpage as html. No issues here     findAll = soup.find_all("tr", class_="topic")     jobsArray = []     for section in findAll:         title = section.find("a", class_="topictitle").get_text()         titleEncoded = title.encode('ascii','ignore')         row = section.find_all("td")         date = row[3].find("div").get_text()         url = section.find_all("a")[3].get("href")         job = Job(titleEncoded, date, url)         print "printing job"         print job         print "printing job"         jobsArray.append(job)     return jobsArray   def sendEmail(job):     senderEmail = "sender@example.com"     recipients = ["destination@example.com"]     s = smtplib.SMTP("smtp.gmail.com",587)     s.ehlo()     s.starttls()      s.ehlo()     s.login(senderEmail, 'pass_goes_here')     for job in jobsFilteredByLocation:         msg = email.message_from_string(job.describJob())         msg['Subject'] = "New Job Found: " + job.title         s.sendmail(senderEmail, recipients, msg.as_string())         print "Sending email..."     s.quit()  def saveJobsToDisk(jobs):     with open('hadooken', 'wb') as output:         print "Start write..."         for job in jobs:             print job.title             pickle.dump(job, output)         output.close()  def getJobsFromDisk():     oldJobsArray = []     with open('hadooken', 'rb') as input:         while True:             try:                 job = pickle.load(input)                 print job.title, "was successfully read from file"                 oldJobsArray.append(job)             except EOFError:                 print "end of file"                 break            return oldJobsArray         input.close()  # SCRIPT STARTS HERE         with open('hadooken', 'ab') as input:     input.close()  locationsArray = ["London"] jobsArray = createJobsArray()  oldJobsArray = getJobsFromDisk()  jobsFilteredByLocation = []  for job in jobsArray:     for location in locationsArray:          found = job.title.find(location)          if found > 0:             if len(oldJobsArray) > 0:                 if any(oldJob.title == job.title for oldJob in oldJobsArray):                     print "Job previously found and sent..."                 else:                     print "adding ", job.title, "to array because it isnt in the old array"                     jobsFilteredByLocation.append(job)             else:                 print "adding ", job.title, "to array"                 jobsFilteredByLocation.append(job)  sendEmail(jobsFilteredByLocation)  mergedArray = oldJobsArray + jobsFilteredByLocation  for job in mergedArray:     print "Job title: ", job.title saveJobsToDisk(mergedArray)   
Английский оригинал

A friend and I created the following script utilizing BeautifulSoup to get the HTML of a job page, then append the job to an array, then a file, then email the job in a human-readable format to ourselves. The script works on Ubuntu, but on my Raspberry Pi, which uses Raspbian, it doesn't work.

The only message I see when running from the terminal is: 'end of file' and 'Start write...' which are lines in the code. There are no error messages when running from the Pi, but nothing gets appended to the array and no emails are sent.

Can someone take a look? Thanks.

import urllib2, email, smtplib, os.path import cPickle as pickle from bs4 import BeautifulSoup  class Job:     """docstring for Job"""     def __init__(self, title, date, url):         self.title = title         self.date = date         self.url = "http://www.forensicfocus.com/"+url     def describJob(self):         return (self.title +" "+ self.date +" "+ self.url)  def createJobsArray():     soup = BeautifulSoup(urllib2.urlopen('http://www.forensicfocus.com/jobs').read())     bigFatString = soup.find_all('a')     #print(bigFatString) #this gets webpage as html. No issues here     findAll = soup.find_all("tr", class_="topic")     jobsArray = []     for section in findAll:         title = section.find("a", class_="topictitle").get_text()         titleEncoded = title.encode('ascii','ignore')         row = section.find_all("td")         date = row[3].find("div").get_text()         url = section.find_all("a")[3].get("href")         job = Job(titleEncoded, date, url)         print "printing job"         print job         print "printing job"         jobsArray.append(job)     return jobsArray   def sendEmail(job):     senderEmail = "sender@example.com"     recipients = ["destination@example.com"]     s = smtplib.SMTP("smtp.gmail.com",587)     s.ehlo()     s.starttls()      s.ehlo()     s.login(senderEmail, 'pass_goes_here')     for job in jobsFilteredByLocation:         msg = email.message_from_string(job.describJob())         msg['Subject'] = "New Job Found: " + job.title         s.sendmail(senderEmail, recipients, msg.as_string())         print "Sending email..."     s.quit()  def saveJobsToDisk(jobs):     with open('hadooken', 'wb') as output:         print "Start write..."         for job in jobs:             print job.title             pickle.dump(job, output)         output.close()  def getJobsFromDisk():     oldJobsArray = []     with open('hadooken', 'rb') as input:         while True:             try:                 job = pickle.load(input)                 print job.title, "was successfully read from file"                 oldJobsArray.append(job)             except EOFError:                 print "end of file"                 break            return oldJobsArray         input.close()  # SCRIPT STARTS HERE         with open('hadooken', 'ab') as input:     input.close()  locationsArray = ["London"] jobsArray = createJobsArray()  oldJobsArray = getJobsFromDisk()  jobsFilteredByLocation = []  for job in jobsArray:     for location in locationsArray:          found = job.title.find(location)          if found > 0:             if len(oldJobsArray) > 0:                 if any(oldJob.title == job.title for oldJob in oldJobsArray):                     print "Job previously found and sent..."                 else:                     print "adding ", job.title, "to array because it isnt in the old array"                     jobsFilteredByLocation.append(job)             else:                 print "adding ", job.title, "to array"                 jobsFilteredByLocation.append(job)  sendEmail(jobsFilteredByLocation)  mergedArray = oldJobsArray + jobsFilteredByLocation  for job in mergedArray:     print "Job title: ", job.title saveJobsToDisk(mergedArray) 
</div
              
   
   

Список ответов

Связанный проблема

0  Python / django - Начало Apache с mod_wsgi  ( Python django starting apache with mod wsgi ) 
пытается запустить mod_wsgi. Получение опорной ошибки связанной с FMOD. <код> [root@host]# mod_wsgi-express start-server wsgi.py --port=80 > --user www...

3  Использование None As Parameter к аргументу ключевого слова [дубликат]  ( Using none as parameter to keyword argument ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже имеет ответ здесь : ...

0  NameError: Имя «Домашние животные» не определены. Питон  ( Nameerror name pets is not defined python ) 
Это код, который я использую, но каждый раз, когда я пытаюсь запустить его, я получаю эту ошибку в терминале: <код> Traceback (most recent call last): Fil...

1  Нахождение корней с Scipy.Optimize.root  ( Finding roots with scipy optimize root ) 
Я пытаюсь найти root y функции, называемой f с помощью python. Вот мой код: <код> def f(y): w,p1,p2,p3,p4,p5,p6,p7 = y[:8] t1 = w - 0.500371726*...

2  подмодул .POPEN отказывается запускать команду, хотя OS.System работает нормально  ( Submodules popen refuses to run a command even though os system works fine ) 
Всякий раз, когда я запускаю этот скрипт: <код> gcalctool0 Я постоянно получаю эту ошибку: <код> gcalctool1 Тем не менее, <код> gcalctool2 определе...

51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала  ( Pythons requests missing dependencies for socks support when using socks5 fro ) 
Я пытаюсь взаимодействовать с API из My Python 2.7 Shell, используя пакет, который опирается на запросы Python. Вещь - это удаленный адрес блокируется моей се...

0  Как бы я избавился от определенных персонажей, а затем выпустите очищенную струну в Python?  ( How would i get rid of certain characters then output a cleaned up string in pyt ) 
В этом фрассетере кода я пытаюсь получить ссылки на изображения, размещенные в группеЧанчатке определенным пользователем: <код> import groupy from groupy im...

0  Запрос доступа от класса Inherit (View)  ( Access request from inherit class view ) 
Как я могу предъявить запрос на var, если я не реализую методы Get / Post из класса Inherit (View)? <код> class Base(View): def __init__(self): ...

0  Jupyter Lab / Ubuntu / «Нет модуля по имени BCLZ»  ( Jupyter lab ubuntu no module named bcolz ) 
Bcolz был успешно установлен и может работать в Python3 (попробовал в терминале). Однако, когда я попробовал это в Jupyter Lab (или ноутбук), приходит ошибка:...

5  Как я могу получить Mercurial для того, чтобы снова выдвигать коммиты?  ( How can i get mercurial to push commits again ) 
Я не знаю, что я ничего изменил и работаю Ubuntu 10.10. Mercurial работает нормально, а затем внезапно, когда я начал толкать сегодня утром, я начал получать ...

-4  Как суммировать значения при заворачивании аналогичного ключа, чтобы построить Dict  ( How to sum values when zipping similar key to build a dict ) 
У меня есть <код> A = [a, b, c, d, a, d, c] и <код> B=[1, 2, 3, 4, 5, 6, 7] Почему <код> dict(zip(A,B)) не возвращается <код> {'a': 6, 'b': 2, 'c': 10, '...

0  Объедините несколько столов для ответа JSON в Django Read Framework  ( Combine multiple tables for a json response in django rest framework ) 
Я использую Django Read Framework для моего serializers . Мне нужно создать веб-сервис, который сочетает в себе поля в трех таблицах и дает JSON. У меня ес...

0  После добавления клеток найдите мин и максимум пяти различных категорий в файле CSV  ( After appending cells find min and max of five different categories in a csv fi ) 
Привет всем У меня есть вопрос. Я просто сейчас изучаю мин и макс. У меня проблемы в нахождении мин и максимум пяти столбцов для каждой категории Вот, что...

1  Где многопроцессор  ( Where is multiprocessing process ) 
Я портирую рабочее приложение из Python 3.3-34 и столкнулся с странной ситуацией. Класс Multipressing.Process отсутствует в загрузке с Python.org. Вместо этог...

1  Как мне позвонить в родительский класс в подклассе?  ( How do i call on a parent class in a subclass ) 
Мне нужно создать вызов несвязанного метода, чтобы установить имя и листья, и я не знаю, как. Любая помощь ценится. Мой код: <код> class Plant(object): ...

Связанный проблема

0  Python / django - Начало Apache с mod_wsgi 
3  Использование None As Parameter к аргументу ключевого слова [дубликат] 
0  NameError: Имя «Домашние животные» не определены. Питон 
1  Нахождение корней с Scipy.Optimize.root 
2  подмодул .POPEN отказывается запускать команду, хотя OS.System работает нормально 
51  Запросы Python «Пропасные зависимости от поддержки носков» при использовании SOCKS5 из терминала 
0  Как бы я избавился от определенных персонажей, а затем выпустите очищенную струну в Python? 
0  Запрос доступа от класса Inherit (View) 
0  Jupyter Lab / Ubuntu / «Нет модуля по имени BCLZ» 
5  Как я могу получить Mercurial для того, чтобы снова выдвигать коммиты? 
-4  Как суммировать значения при заворачивании аналогичного ключа, чтобы построить Dict 
0  Объедините несколько столов для ответа JSON в Django Read Framework 
0  После добавления клеток найдите мин и максимум пяти различных категорий в файле CSV 
1  Где многопроцессор 
1  Как мне позвонить в родительский класс в подклассе?