2016-09-26 3 views
-1

С помощью некоторых онлайн-баров (Bucky) мне удалось написать простой веб-скребок, который просто проверяет, есть ли какой-либо текст на веб-странице. Однако я бы хотел, чтобы код запускался каждый час. Я предполагаю, что мне понадобится также разместить код, чтобы он это сделал? Я провел некоторое исследование, но не могу найти подходящий способ запускать его каждый час. Вот код, который я получил до сих пор:Как заставить мою функцию работать каждый час?

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) 

Спасибо!

+7

Для машин Linux используйте 'crontab' –

+1

Использование cronjobs в Linux, на окнах вы можете использовать taskcheduler –

ответ

4

Самый простой способ будет выглядеть так:

import time 

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

Если вы хотите сделать это на Linux, вы можете просто ввести

nohup python -u your_script_name & 

, а затем ваш скрипт будет работать как процесс (If. вы не убиваете его, он просто продолжает работать без зависания.)

+1

Я исправил ваш код Python так как нет 'While', но' while' в Python и скобки тоже не должно быть. Я добавил '&' в оболочку Linux, иначе оболочка не получит контроль. Ohter, чем ваш код в порядке. Я бы по-прежнему использовал cron. – ElmoVanKielmo

+0

Отлично, спасибо! Я попробую это и дам вам знать. – user1663396

+0

спасибо за исправление. – Acepcs

Смежные вопросы