Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι
  • Σελίδα:
  • 1
  • 2

ΘΕΜΑ: unicode προβληματα

unicode προβληματα 7 Χρόνια 3 Εβδομάδες πριν #4822

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
καλημερα σε ολους.
Σε λιστα εχω στοιχεια της μορφης ...gr\\/\\u03b5\\u03bd\\u03bf\\u03b9\\u03ba\\u03af\\u03b1\\u03c3\\.... που ειναι διαφορα url.Οπως ειναι λειτουργουν σε εναν browser,ανοιγουν δηλαδη κανονικα τη σελιδα.Προσπαθω να το ανοιξω με requests και να το δουλεψω με bs4 και δεν το βλεπει.Παιρνω λαθος <requests.exceptions.InvalidURL: Failed to parse: https:\>.Υπαρχει καμια ιδεα πως θα το γυρισω σε κανονικη μορφη?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 3 Εβδομάδες πριν #4823

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
έχεις διπλό backslash μπροστά από μη unicodes;
αν όχι
>>> url='www.spitogatos.gr/\\u03b5\\u03bd\\u03bf\\u03b9\\u03ba\\u03af\\u03b1\\u03c3'
>>> normal_url=url.encode('utf-8').decode('unicode-escape')
>>> normal_url
'www.spitogatos.gr/ενοικίασ'
>>> 
αν ναι μπέρδεμα
Τελευταία διόρθωση: 7 Χρόνια 3 Εβδομάδες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 3 Εβδομάδες πριν #4824

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
theo σε χαιρετω.
Εκεινο το χθεσινο που με βοηθησες το πηγα παρακατω
trinket.io/python/6516b2f0f7
Αυτο που τυπωνει στην κονσολα ειναι οι διευθυνσεις url που θελω να μετατρεψω.Με copy -past sε εναν browser ανοιγει κανονικα τη σελιδα.Μου χαλαει στο requests
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 3 Εβδομάδες πριν #4825

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
entajei theo
το γυρισα με τον κωδικα σου
import re

import requests

from bs4 import BeautifulSoup
ur = 'https:\\/\\/www.spitogatos.gr\\/\\u03b5\\u03bd\\u03bf\\u03b9\\u03ba\\u03af\\u03b1\\u03c3\\u03b7_\\u0394\\u03b9\\u03b1\\u03bc\\u03ad\\u03c1\\u03b9\\u03c3\\u03bc\\u03b1_\\u03a0\\u03cd\\u03c1\\u03b3\\u03bf\\u03c2_\\u0391\\u03b8\\u03b7\\u03bd\\u03ce\\u03bd__\\u039a\\u03ad\\u03bd\\u03c4\\u03c1\\u03bf_\\u0391\\u03b8\\u03ae\\u03bd\\u03b1\\u03c2_-l6059950'
url=ur.encode('utf-8').decode('unicode-escape').replace('\\/\\','/').replace('\/','/')

print(url)



www.spitogatos.gr/ενοικίαση_Διαμέρισμα_Π...τρο_Αθήνας_-l6059950

το συνεχιζω...ευχαριστω
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4826

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Γεια nikpol keep going

Κράτα το όσο πιο απλό μπορείς το βρίσκω λίγο πολύπλοκο σε κάποια σημεία.
Αν γίνει πολύ πολύπλοκο μόνο εσύ θα μπορείς να το διαβάζεις
και μετά από λίγο καιρό ούτε εσύ :)

Simple is better than complex.
Readability counts.

Από το Zen της python

Εφόσον μεγαλώνει μία συνάρτηση ή όλο το πρόγραμμα σπάστο σε μικρά κομμάτια
Όταν κάποια στιγμή πάρεις error ή κάτι κολλάει ή δεν δουλεύει σωστά πρέπει να το εντοπίζεις γρήγορα.
Τελευταία διόρθωση: 7 Χρόνια 2 Εβδομάδες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4827

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
theo εχεις δικιο το ξεχειλωσα παλι.Αλλα μου φαινεται πολυ στριφνο και με δυσκολευει.Κοιτα,για καθε επιλογη με κλικ σε item του δευτερου listbox,βρισκω τα details που το αφορουν και θα τα δειχνω μεσα σε messagebox.Αυτο το "κλικ σε item του δευτερου listbox" αν και σε ακολουθησα οπως εκανες στο πρωτο δεν μπορω να το πετυχω.Βαζω item=self.lb2.get(self.lb2.curselection()) και δεν μου καθεται.Τα στοιχεια στο λιστμποχ τα γυρισα απο str σε tuple και οι δεικτες [] που βαζω σκανε με bad index klp.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4829

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Ο κώδικας είναι αυτός ;
trinket.io/python/6516b2f0f7

Δοκιμάζω
>>> def get_spitia_sxolis(url_sxolis):  #briskei ti kaneiw click stiw sxoles
    print('\ndef execute==def get_spitia_sxolis\n')
    r = requests.get(url_sxolis)
    soup = BeautifulSoup(r.text,'html.parser')
    if r.status_code !=200:
      print('\n ----den brhka selida---')
    spitia=[]
    for link in soup.find_all('div',{'id':"listingsSection"}):
      for lin in link.find_all('a',{'href':"#"} ):
        for li in lin.find_all('div',{'class':"tableCell"}):
          lek=li.text
          lek=' '.join(lek.split())
          val=lin.get('id')
          spiti=lek+'#'+val+'?'
          spitia.append(spiti)
    return spitia #Τα άλλα τα έσβησα γιατί νομίζω δεν επηρεάζουν κάτι
 
>>> import requests
>>> from bs4 import BeautifulSoup
>>> url_sxolis='https://www.spitogatos.gr/students/tmima-mesogeiakon-spoydon-rodos'
>>> spitia=get_spitia_sxolis(url_sxolis)
 
def execute==def get_spitia_sxolis
 
>>> len(spitia)
10
>>> for spiti in spitia:
	print(spiti)
 
 
#listing_6036364?
Διαμέρισμα 50 τ.μ. Χώρα - Ρόδος €300#listing_6036364?
#listing_5894093?
Διαμέρισμα 75 τ.μ. Χώρα - Ρόδος €400#listing_5894093?
#listing_5957575?
Διαμέρισμα 45 τ.μ. Χώρα - Ρόδος €300#listing_5957575?
#listing_5931509?
Διαμέρισμα 20 τ.μ. Χώρα - Ρόδος €200#listing_5931509?
#listing_5793383?
Διαμέρισμα 60 τ.μ. Χώρα - Ρόδος €370#listing_5793383?
>>> 
Τα data που μπαίνουνε στην lb2 είναι αυτά που εκτυπώθηκαν
και από εδώ δεν μπορείς να αντλήσεις περισσότερες πληρόφοριές
είναι str
Αυτά που μπαίνουν στην lb1 είναι ένα tuple με δεύτερο στοιχείο το url_sxolis
το οποίο παιρνάμε σαν όρισμα στη συνάρτηση get_spitia_sxolis(url_sxolis) και παίρνουμε
σπίτια

Από μία ματιά που έριξα το νεο url κρύβεται στη φώτογραφία
<a target="_blank" href="www.spitogatos.gr/ενοικίαση_Διαμέρισμα_Χώρα__Ρόδος_-l6036364"><img src="m3.spitogatos.gr/120727148_300x220.jpg?v=20140916" alt="6036364" class="infowindowImage"><div class="table"><div class="tableCell"><div class="infowindowArea">Χώρα - Ρόδος</div></div><div class="tableCell"><div class="infowindowPrice">€300</div></div></div></a>
Θα το πάρεις με κάποιο τρόπο για κάθε σπίτι και θα το βάλεις στην lb2 μαζί με το σπίτι
όταν θα παίρνεις το qurselection θα κάνεις με μία συνάρτηση parse στην σελίδα του σπιτιού και θα παίρνεις τις πληροφορίες που θες

Δεν είναι απλό :(
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4830

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
καλημερα theo.
Το νεο url το εχω ηδη σε λιστα.Το σκαλωμα ειναι οτι δεν μπορω να παρω οταν κανω κλικ σε ιτεμ του δευτερου λιστβοχ.Δoκιμασα lb2.get(lb2.curselection())[kapoio deikth] και δεν το παιρνω.Με τον listing id που εχει βρισκω απο λιστα το url toy spitioy poy exv etoimh και δειχνω τα details toy mesa se message box.Εδω σκαλωνω lb2.get(lb2.curselection())[kapoio deikth] .Αν και μου το εδειξες στο πρωτο λιστβοχ που δουλευε πατωντας button αναζητηση,εδω θελω να το παρω με κλικ πανω του.Αν δεν το καταφερω θα βαλω δευτερο κουμπι αναζητησης και θα σε αντιγραψω......Και παλι σε ευχαριστω που ασχολεισαι...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4831

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
H lb2.get(lb2.curselection()) παίρνει όλο το κείμενο του επιλεγμένου στοιχείου. Από αυτό πρέπει να κάνεις extract το url
Δείξε μου ένα στοιχείο της lb2 και που είναι τα urls αν δεν είναι στην lb2 να σου πω πως θα το πάρεις

Το απλό click όπως σου είπα και πιο πάνω δεν είναι καλή ιδέα γιατί το κάνεις και για να επιλέξεις στοιχείο από τη lista. Βάλε double click ή enter ή κάτι άλλο.
Τα υπόλοιπα είναι τα ίδια μόνο στην συνάρτηση χειρισμού θα βάλεις και την παράμετρο event
Τελευταία διόρθωση: 7 Χρόνια 2 Εβδομάδες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4832

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
Το καταλαβα.Το εκανα tuple και πηγα να το διαβασω με δεικτη...αλλα δεν.
trinket.io/python/1a13296463
Υπαρχει ολη η πληροφορια αλλα δεν μπορω να διαλεξω με κλικ,αντε και με double.Πρεπει να βαλω function με event ,το εχω αλλα κολλαω στο πως θα βγαλω values απο func se func.
Ταγαρι σου εγινα φιλε μου
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4833

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
trinket.io/python/4c893296ee
Ετσι δουλευει για οσα σπιτια βρηκε και καπως αναποδα.Οταν τα δειξει στο lb2 ,me kaue klik sto item ua anoigei to messagebox
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4834

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Πήρα το πρόγραμμα σε τοπικό αρχείο και το έτρεξα στον indle
Όταν φόρτωσε το γραφικό διάλεξα μια σχολή και πάτησα αναζήτηση
τότε άρχισε να μου πετάει message boxes μόλις έκλεινα το ένα ερχόταν το άλλο προσπαθούσα με γρήγορα κλικ να κλείσω τον indle αλλά τίποτα πάτάω ctr+c και τίποτα μόλις έκλεινα το ένα παράθυρο ερχόταν το άλλο. Πίστεψα ότι είναι τεχνητή νοημοσύνη και πάει να πάρει τον έλεγχο του hardware για να το κάνει transformer Τελικά με τα πολλά ctr+c είδα κάτι κόκκινα γράμματα και το πρόγραμμα σταμάτησε. Φοβερή εμπειρία :laugh: :laugh:
Τελευταία διόρθωση: 7 Χρόνια 2 Εβδομάδες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4835

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
Phga sto telow πηδωντας ενδιαμεσα για να δεις τι θελω.Αυτο το κουλο που ειδες ειναι αναποδο.Αφου γεμισω με τα διαθεσιμα σπιτια το lb2,eite me double ειτε πατωντας αναζητηση δεξιο,θα ανοιγει το diko toy messagebox.
Το τρελο run κοβεται αμα κλεισεις την κονσολα :laugh:
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4836

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Ο κώδικας χρειάζεται λίγο συμμάζεμα, σου λέω μερικά σημεία που καλό είναι να βελτιώσεις

Στην κλάση άλλα widgets τα κάνεις pack και άλλα τα κάνεις place πρέπει να χρησιμοποιείς μία μέθοδο και ως πιο κατάλληλη προτείνω την τρίτη που υπάρχει grid
'Αλλα widgets τα βάζεις στο self και άλλα τα βάζεις στο root, αφού δεν υπάρχει root! τυχαίνει να δημιουργείς ένα μετά αλλά αν δεν ονομαστεί root αλλά κάπως αλλιώς???
Όλα λοιπόν τα widget πρέπει να μπούνε στο self
Την init μπορείς να την κάνεις έτσι
class Window(Frame):
  def __init__(self, parent=None):
    Frame.__init__(self, parent) # do superclass init
    self.pack()
    self.init_window()
    self.populate_listbox()

To self.master δεν χρειάζεται τον titlo και το menu θα τα κάνεις εκτός κλάσης
στην κλάση κάνεις μόνο το Frame self που έχει όλη τη λειτουργία του προγράμματός σου.

Στην συνάρτηση get_spitia_sxolis(self,url_sxolis) έχεις παράμετρο self. Αφού είναι εκτός κλάσης το self δεν χρειάζεται.

Εάν σε μιά συνάρτηση θές να περάσεις ένα object κλάσης ως παράμετρο χρησιμοποιείς
το όνομα της κλάσης με μικρά ή τη λέξη object

Η get_details_per_house(self,link_list) είναι επίσης εκτός κλάσης και έχει παράμετρο self
και το ότι καλεί messagebox μου φαίνεται κάπως παράξενο

Πάμε στο πρόβλημα βλέπω ότι τα spita τα παράγεις στην get_spitia_sxolis(self,url_sxolis) και εκεί είναι και τα url μέσα στην link_list
Τα σπίτια λόγω του ότι δημιουργούνται λάθος έχουν διπλές καταχωρήσεις μιά είναι μόνο το listing και μετά η περιγραφή με το listing μαζί το 1ο δεν το χρειάζεσαι είναι περιτό
spitia=[spitia[i] for i in range(1, len(spitia),2)] Αυτή τη γραμμή θα τη βάλεις πριν απο εκεί που λες sw=0 ακριβώς έξω από βρόγχους
στο τέλος πάνω από εκεί που λέει
return spitia θα βάλεις spitia = list(zip(spitia,link_list))
Tώρα η συνάρτηση σου θα επιστέφει lista με tuples
Εάν βάλεις τώρα τα στοιχεία ως tuples στο lb2 το url του κάθε σπιτιού μπορείς να το πάρεις με lb2.get(lb2.curselection())[1]
Εάν δεν το βάλεις όλο στη lb2 και βάλεις μόνο το spiti[0] for spiti in spitia
μπορείς πάλι να το πάρεις το url με spitia[lb2.curselection()][1] H lb2.curselection() δίνει το index της lb2 το οποίο βρίσκεται σε αντιστοιχεία με το index της spitia εφόσον έβαλες τα στοιχεία με τη σειρά

στη συνάρτηση τώρα με το event
 
def handler_lb2(self, event):
  url=spitia[lb2.curselection()][1]
  details=get_details_per_house(url)
  messagebox.showinfo(details)
 

που σημαίνει ότι η get_details_per_house(url)πρέπει να παίρνει μια παράμετρο και να επιστέφει str και τα άλλα να φύγουν
Ελπίζω να μη σε μπέρδεψα, έτσι θα το έκανα εγώ
Επίσης όπως σου ξαναείπα το πρόγραμμα έχει γίνει λίγο μπερδεμένο
Σπάστο σε μικρές απλές συναρτήσεις και σε περισσότερα αρχεία.
Τελευταία διόρθωση: 7 Χρόνια 2 Εβδομάδες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

unicode προβληματα 7 Χρόνια 2 Εβδομάδες πριν #4837

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Άδειασα λίγο τον κώδικα και έκανα μια λειτουργική έκδοση
Μερικά σημεία δεν τα πείραξα γιατί δεν κατάλαβα πως ακριβώς το κάνεις
Με το κουμπί αναζήτηση γεμίζει η λίστα με σπίτια και με διπλό κλικ σε σπίτι εμφανίζεται το messagebox είναι επίσης responsive

from tkinter import messagebox
from tkinter import *
import requests
from bs4 import BeautifulSoup
 
class Window(Frame):
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.pack(expand=1, fill=BOTH)
    self.init_window()
    self.populate_listbox()
 
  def init_window(self):
    self.columnconfigure(0, weight = 1)
    self.columnconfigure(2, weight = 1)
    self.rowconfigure(0, weight = 1)
 
    scrollbar1 = Scrollbar(self, orient=VERTICAL)
    self.lb1=Listbox(self,yscrollcommand=scrollbar1.set)##
    self.lb1.grid(column=0, row=0, padx=10, pady=5, sticky=W+E+N+S)
    scrollbar1.config(command=self.lb1.yview)
    scrollbar1.grid(column=1, row=0, sticky=N+S)
 
    scrollbar2 = Scrollbar(self, orient=VERTICAL)
    self.lb2=Listbox(self, yscrollcommand=scrollbar2.set) #.grid(row=30,column=30)##
    self.lb2.grid(column=2, row=0, padx=10, pady=5, sticky=W+E+N+S)
    self.lb2.bind("<Double-1>", self.handler_lb2)
    scrollbar2.config(command=self.lb2.yview)
    scrollbar2.grid(column=3, row=0, sticky=N+S)
 
    searchButton = Button(self, text="Αναζητηση", command=self.search_spitia) 
    searchButton.grid(column=0, row=1, sticky=W+E, pady=5 )
 
    quitButton = Button(self, text="Εξοδος",command=self.quit)
    quitButton.grid(row=1, column=2, sticky=E+W, pady=5) 
 
  def populate_listbox(self):
    print('\ndef execute==def populate_listbox\n')
    for sxoli in get_sxoles_spitogatos():
      self.lb1.insert(END, sxoli)
 
  def search_spitia(self):
    url_sxolis=self.lb1.get(self.lb1.curselection())[1]
    spitia=get_spitia_sxolis(url_sxolis)
    link_list=extract_urls_spitivn(url_sxolis)
    spitia = list(zip(spitia,link_list))
    self.lb2.delete(0, END) #σβηνει στο δευτερο listbox τις προηγουμενες τιμες
    for spiti in spitia: #εμφανιζει τα αποτελεσματα που προτεινει ο σπιτογατοσ
      self.lb2.insert(END, spiti)#bazei sto lb2 ta proteinomena
 
  def handler_lb2(self, event):
    url=self.lb2.get(self.lb2.curselection())[1]
    details=get_details_per_house(url)
    messagebox.showinfo('hello',details)
 
def get_sxoles_spitogatos():
  print('\ndef execute==get_sxoles_spitogatos\n')
  sxoles = []
  url = "https://www.spitogatos.gr/students/"
  r = requests.get(url)
  soup = BeautifulSoup(r.text,'html.parser')
  for link in soup.find_all('a'):
    try :
      st=link.get('href')
      if st[0:35]==url:
        sxoles.append((link.get_text().strip(),st))
    except:
      pass
  return sxoles
 
def get_spitia_sxolis(url_sxolis):  #briskei ti kaneiw click stiw sxoles
  print('\ndef execute==def get_spitia_sxolis\n')
  r = requests.get(url_sxolis)
  soup = BeautifulSoup(r.text,'html.parser')
  if r.status_code !=200:
    print('\n ----den brhka selida---')
  spitia=[]
  for link in soup.find_all('div',{'id':"listingsSection"}):
    for lin in link.find_all('a',{'href':"#"} ):
      for li in lin.find_all('div',{'class':"tableCell"}):
        lek=li.text
        lek=' '.join(lek.split())
        val=lin.get('id')
        spiti=lek+'#'+val+'?'
        spitia.append(spiti)
    spitia=[spitia[i] for i in range(1, len(spitia),2)]
  return spitia
 
def extract_urls_spitivn(url_sxolis):
  r = requests.get(url_sxolis)
  soup = BeautifulSoup(r.text,'html.parser')    
  extract=soup.select('script[type="text/javascript"]')[4].string
  data=re.findall(r'(\[.*\])', extract)
  dat=data[1]# to deytero stoixeio thw listaw data
  url=[]
  desc=[]
  for m in re.finditer('"url"', str(dat)): 
    url.append(m.start())
  for d in re.finditer('"description"', str(dat)):
    desc.append(d.start())
  urlh=[] #lista me ta url tvn proteinomenvn spitivn
  i=0
  for ur in url:
    a=url[i] #arxizei to prvto url
    b=desc[i] #arxizei to prwto description
    urlh.append(dat[int(a)+7:int(b)-2])#kobei lektika kai afhnei katharo to link
    i+=1
    pass
  link_list=[]  
  for ur in urlh:
    url=ur.encode('utf-8').decode('unicode-escape').replace('\\/\\','/').replace('\/','/')
    link_list.append(url)
  return link_list
 
def get_details_per_house(url_spitiou): #briskei leptomereiew gia to kaue spiti
  print('def execute= get_details_per_house\n')
  r = requests.get(url_spitiou)
  soup = BeautifulSoup(r.text,'html.parser')
  if r.status_code !=200:
    print('\n ----den brhka selida---')
    spitia=[]
  link = soup.find('div',{'class':"bck light_grey hide-print"})
  lek=' '.join(link.text.split())
  lak=soup.find('div',{'itemprop':"description"})
  lak = ' '.join(lak.text.split())
  lek=lek+lak       
  lek=' '.join(lek.split())
  return lek 
 
root = Tk()
root.title("ΑΝΑΖΗΤΗΣΗ ΦΟΙΤΗΤΙΚΗΣ ΚΑΤΟΙΚΙΑΣ ΑΠΟ ΣΠΙΤΟΓΑΤΟ")
app=Window(root)
root.mainloop()
Τελευταία διόρθωση: 7 Χρόνια 2 Εβδομάδες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
  • Σελίδα:
  • 1
  • 2
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.626 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου