2016-09-26 8 views
-1

Mit Hilfe einiger Online-Tuts (Bucky) habe ich es geschafft, einen einfachen Web-Scraper zu schreiben, der nur prüft, ob sich Text auf einer Webseite befindet. Was ich jedoch gerne tun würde, ist, dass der Code jede Stunde ausgeführt wird. Ich nehme an, dass ich den Code auch hosten muss, damit es das tut? Ich habe einige Nachforschungen angestellt, aber ich finde nicht, dass ich jede Stunde eine angemessene Methode finde, sie auszuführen. Hier ist der Code, den ich habe bisher:Wie mache ich meine Funktion jede Stunde?

import requests 
from bs4 import BeautifulSoup 

def odeon_spider(max_pages): 
    page = 1 
    while page <= max_pages: 
     url = "http://www.odeon.co.uk/films/rogue_one_a_star_wars_story/16038/" + str(page) #stores url in variable 
     source_code = requests.get(url) #gets url and sets it as source_code variable 
     plain_text = source_code.text #stores plain text in plain_text variable 
     soup = BeautifulSoup(plain_text, "lxml") #create beautifulsoup object 
     div_content = soup.findAll("div", {"class": "textComponent"}) #finds all divs with specific class 
     for x in div_content: 
      find_para = str(x.find('p').text) #finds all paragraphs and stores them in variable 
      text_to_search = "Register to be notified" #set text to search to variable 
      if text_to_search in find_para: #checks if text is in find_para 
       print("No tickets") 
      else: 
       print("Tickets") 
     page += 1 


odeon_spider(1) 

Dank!

+7

Für Linux-Computer verwenden 'Crontab' –

+1

Verwenden Sie Cronjobs unter Linux, auf Windows könnten Sie Taskscheduler verwenden –

Antwort

4

Der einfachste Weg, so sein würde:

import time 

while True: 
    call_your_function() 
    time.sleep(3600) 

Wenn Sie auf Linux tun dies wollen, können Sie einfach

nohup python -u your_script_name & 

eingeben und dann das Skript wird als ein Prozess ausgeführt (If. du tötest es nicht, es läuft einfach ohne aufzuhängen.)

+1

Ich repariert Ihren Python-Code da gibt es kein 'While' aber' while' in Python und Klammern sollte auch nicht da sein. Ich habe '& 'zur Linux-Shell hinzugefügt, weil sonst die Shell das Steuerelement nicht zurückbekommt. Sonst ist dein Code in Ordnung. Ich würde immer noch Cron verwenden. – ElmoVanKielmo

+0

Großartig, danke! Ich werde es versuchen und dich wissen lassen. – user1663396

+0

danke für deine korrektur. – Acepcs

Verwandte Themen