Advertisement
Guest User

efzrt

a guest
Feb 23rd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.58 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #-*- coding: utf-8 -*-
  3.  
  4. import requests
  5. import sys
  6. import time
  7. from bs4 import BeautifulSoup
  8. from fake_useragent import UserAgent
  9. from datetime import date
  10.  
  11. """
  12. https://www.leboncoin.fr/locations/offres/ile_de_france/hauts_de_seine/?th=1&mre=600&sqe=1&ret=2&furn=1
  13. sqe=1 = 20m2
  14. """
  15. def pag():
  16.     for y in soup.find_all('section', {"class":"tabsContent block-white dontSwitch"}):
  17.         urls = y.find("li")
  18.         ok = urls.find("a", {"class":"list_item clearfix trackable"})
  19.         for x in ok.text:
  20.             print x.get("href")# petit bug d'url a regler
  21.  
  22.  
  23. today = date.today()
  24. a_h = today.day - 2 #avant hier
  25. a_ah = today.day - 3# avant avant hier
  26.  
  27. #Villes :
  28. ville = [
  29.         u"Sèvre",
  30.         u"Boulogne-Billancourt",
  31.         u"Issy-les-Moulineaux",
  32.         u"Saint-Cloud",
  33.         u"Meudon",
  34.         u"Ville-d'Avray",
  35.         u"Clamart",
  36.         u"Puteaux",
  37.         u"Nanterre"
  38. ]
  39.  
  40. #les dernieres annonces sur 3 jours
  41. date_post = [
  42.         "Aujourd'hui",
  43.         "Hier",
  44.         str(a_h),
  45.         str(a_ah)
  46. ]
  47.  
  48. prix_max = "600"
  49. surface = "1" #surface max : 1 = 20m2 ; 2 = 25m2; 3 = 30m2; 4 = 35m2; 5 = 40m2; 6 = 50m2.....
  50. m = "1" #1 = meublé; 2 = non meublé
  51.  
  52. page = "1"
  53. res = 0
  54.  
  55. while 1:
  56.     ua = UserAgent()
  57.     user_agent = {'User-agent': ua.random} #changement d'user-agent (random)
  58.     url = "https://www.leboncoin.fr/locations/offres/ile_de_france/hauts_de_seine/?th=" + page + "&mre=" + prix_max + "&sqe=" + surface + "&ret=2&furn=" + m
  59.     req = requests.get(url, headers=user_agent)
  60.     stat = req.status_code
  61.     if stat == 200:
  62.         if "Urgentes" not in req.text:
  63.             print "URL not found"
  64.             break
  65.         else:
  66.             print "\033[42m URL found \033[0m"
  67.             print "*" * 15
  68.             if "Aucune" in req.text: #si aucune annonce trouver
  69.                 print "Aucune annonce trouve"
  70.                 print "*" * 15
  71.                 break
  72.             else:
  73.                 soup = BeautifulSoup(req.text,"html.parser")
  74.                 for p in soup.find_all('section', {"class":"item_infos"}):
  75.                     title = p.find("h2")
  76.                     price = p.find("h3")
  77.                     for i in ville:
  78.                         for d in date_post:
  79.                             if d in p.text:
  80.                                 if i in p.text:
  81.                                     t =  title.text.replace("   ","").replace("\n","")
  82.                                     print "\033[32m[+] \033[0m " + t.replace("  ","") + " : \033[41m" + price.text.replace("    ","").replace(" ","").replace("\n","") + "\033[0m / " + i + " | date : "+ d + "/" + str(today.month)
  83.                                     # affiche du titre de l'annonce, du prix, de la ville et de la date
  84.                                     print "\033[34m-\033[0m" * 30 + "\n"
  85.                                     pag()
  86.                                     res = res + 1                          
  87.                                 else:
  88.                                     break
  89.  
  90.  
  91.                 print "*" * 15
  92.                 print "resultat : " + str(res) #nombre de resultat trouver
  93.     time.sleep(1800)#  min / temps avec renvoi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement