Bevakar Blocket med Web Scraping i Python
Efter stora problem med Blockets inbyggda bevakningstjänst för nya annonser så bestämde jag mig för att göra en egen! Vi använder oss av Beautiful Soup-modulen för att skrapa Blockets sidor efter data. När vi får vårt program att fungera, så låter jag programmet skicka ett sms till min telefon när det dyker upp nya annonser (med hjälp av 46elks API för att skicka SMS).
Videon ”Bevakar Blocket med Python” hittar du på vår YouTube-kanal: https://youtu.be/T3VMn289QVc
Koden för huvudfilen, blocket.py hittar du här nedan. Glöm inte att också eventuellt skapa secret.py enligt instruktioner i videon. Lycka till!
import requests from bs4 import BeautifulSoup import time import secret URL = "https://www.blocket.se/annonser/hela_sverige" API_PASSWORD = secret.API_PASSWORD API_USERNAME = secret.API_USERNAME phone = secret.phone def parse_site(url): page = requests.get(url) soup = BeautifulSoup(page.content, "html.parser") return soup def get_latest_ad(): soup = parse_site(URL) ad_elems = soup.find_all("article", class_="hidZFy") latest_ad = ad_elems[0] # hitta namn, pris och url ad_name = latest_ad.find("span", class_ = "jzzuDW").text ad_price = latest_ad.find("div", class_ = "bNwNaE").text ad_url = latest_ad.find("a", class_="enigRj")["href"] return ad_name, ad_price, ad_url # skickar sms def send_sms(name, price, url): message = "***NY ANNONS***\n" + name + "\n" + price + "\n" + "https://blocket.se" + url requests.post( 'https://api.46elks.com/a1/sms', auth=(API_USERNAME, API_PASSWORD), data={ 'from': 'Annonsalarm', 'to': phone, 'message': message } ) prev_ad_name, prev_ad_price, prev_ad_url = get_latest_ad() print("Senaste annonsen: ", prev_ad_name, ": ", prev_ad_price) print("Url: ", prev_ad_url) while True: time.sleep(5) ad_name, ad_price, ad_url = get_latest_ad() if ad_name == prev_ad_name: # inga nya annonser t = time.localtime() current_time = time.strftime("%H:%M:%S",t) print("Ingen ny annons hittad...", current_time) else: # ny annons hittad!!!! print("Ny annons: " + ad_name) send_sms(ad_name,ad_price, ad_url) prev_ad_name = ad_name

Unga Programmerare håller kurser i programmering för barn och ungdomar. Unga Programmerare startades av studenter från Chalmers Tekniska Högskola.
Företagsinfo
Innovation Institute of Sweden AB
Box 2062, 116 74 Stockholm
Org.nr. 559290-7603
Länkar