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

ΘΕΜΑ: εξαγωγή links από ιστοσελίδα

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3574

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
καλησπέρα σας. ήθελα να σας ρωτήσω σχετικά με ιστοσελίδες. πώς μπορώ σε python3 να φορτώσω ιστοσελίδα να την διαβάζει να εμφανίζει το εσωτερικό της και να αναγνωρίζει τα λινκ που υπάρχουν στην ιστοσελιδα? Σας ευχαριστώ!
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3575

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 674
  • Ληφθείσες Ευχαριστίες 109
Υπάρχουν διάφοροι τρόποι. Πχ urllib, requests + BeautfilSoup, scrapy.

Googl-αρε «python + web-scraping» και θα βρεις διάφορα.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": nora

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3576

  • Αποστόλης
  • Το Άβαταρ του/της Αποστόλης
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 142
  • Ληφθείσες Ευχαριστίες 24
nora έγραψε:
καλησπέρα σας. ήθελα να σας ρωτήσω σχετικά με ιστοσελίδες. πώς μπορώ σε python3 να φορτώσω ιστοσελίδα να την διαβάζει να εμφανίζει το εσωτερικό της και να αναγνωρίζει τα λινκ που υπάρχουν στην ιστοσελιδα? Σας ευχαριστώ!

Διάβασε πρώτα αυτό: getpython3.com/diveintopython3/http-web-services.html για να καταλάβεις περί τίνος πρόκειται.
Χονδρικά.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3578

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
μπορεί κάποιος ννα με βοηθήσει κάνοντάς το να τρέχει?
import re
import urllib.request
page = urllib.request.urlopen('https://en.wikipedia.org/wiki/Main_Page')
text = page.read().decode('utf-8')
page.close()
restr=r'(([http://])\S+(\.([a-zA-Z]|[\?-&%=]+))'
rexp = re.compile(restr,re.DOTALL|re.IGNORECASE)
import urllib.parse
a = 'https://en.wikipedia.org/wiki'
b = '/Science_fiction_film'
urllib.parse.urljoin(a,b)
c = '/Deadline_(magazine)'
urllib.parse.urljoin(a,c) 
d = '/Supersoldier'
urllib.parse.urljoin(a,d)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3579

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
πρέπει να διαβάζει μια ιστοσελίδα να αναγνωρίζει τα λινκ τησ να τα εμφανίζει και στη συνέχεια να μεταβαίνει στα λινκ αυτά και να εμφανίζει το περιεχόμενο τους
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3580

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
ΕΠΙΓΕΙ ΠΑΙΔΙΑ ΟΠΟΤΕ ΟΠΟΙΟΣ ΜΠΟΡΕΙ ΑΣ ΒΟΗΘΗΣΕΙ
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3581

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 674
  • Ληφθείσες Ευχαριστίες 109
4 το πρωί, είναι λίγο δύσκολο να βρεις κάποιον να σε βοηθήσει...

Εν πάση περιπτώσει, έχεις λάθος στην έκφραση που γράφεις. Πρέπει να κάνεις escape το "-" και να κλείσεις μια παρένθεση
restr=r'(([http://])\S+(\.([a-zA-Z]|[\?-&%=]+))'
restr=r'(([http://])\S+(\.([a-zA-Z]|[\?\-&%=]+)))'
Αυτό δεν σημαίνει ότι η έκφραση θα είναι σωστή, αλλά τουλάχιστον θα κάνει compile

Γενικά για regex, βοηθάει πολύ να χρησιμοποιείς κάποιο online tool όπως τα ακόλουθα:
regex101.com/
www.debuggex.com/


Google is also your friend...
encrypted.google.com/search?hl=en&q=regex%20to%20parse%20URI
Τελευταία διόρθωση: 2 Χρόνια 6 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": nora

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3582

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
σωστή η διόρθωση και ευχαριστώ όμως δεν μπορώ να κάνω αυτό που θέλω και έχω δει πολλές πληροφορίες στο ίντερνετ και άκρη δεν έχω βγάλει..
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3583

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 674
  • Ληφθείσες Ευχαριστίες 109
Είσαι υποχρεωμένη να το κάνεις με regex;
www.lmgtfy.com/?q=python%20extract%20links%20from%20html
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": nora

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3584

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
είμαι υποχρεωμένη να το κάνω με την μορφή που σας έστειλα. αυτά που μου στέλνετε τα λινκ δεν έχουν σχέση με αυτά που θέλω να κάνω.. και η html τι σχέση εχει? εγώ σε python3 θέλω να κάνω κάτι απλό θεωρώ για όσους γνωρίζουν και ασχολούνται με python
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3585

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
σε ευχαριστώ πολύ για το χρόνο σου και τις υποδείξεις σου..
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3586

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
κάποιος που να μπορεί να μου πει ακριβώς πως να το κανω? επίγει! σασ ευχαριστω πολυ
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3591

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 405
  • Ληφθείσες Ευχαριστίες 87
Ενδεικτικά δες αυτό:

>>> import re
>>> text = open('Έγγραφα/Python_Forum/wiki.txt').read()
>>> pat = r'<a\s*href=[\'"]?([^\'" >]+)'
>>> urls = re.findall(pat, text, re.DOTALL|re.IGNORECASE)
>>> for url in urls[:5]:
	print(url)
 
 
#mw-head
#p-/wiki/Wikipedia
/wiki/Free_content
/wiki/Encyclope


Για λόγους ευκολίας έχω αποθηκεύσει την ιστοσελίδα τοπικά.

Αν δεις ολόκληρη τη λίστα θα καταλάβεις ότι πρέπει να αποκλείσεις, ότι δεν ταιριάζει και να επεξεργαστείς τα υπόλοιπα.

Γενικά οι regex είναι δύσκολη υπόθεση και θέλουν αρκετή μελέτη.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": nora

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3593

  • nora
  • Το Άβαταρ του/της nora
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 37
οταν το τρεχω βγαζει invalid error.. γιατί το κάνει αυτό?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

εξαγωγή links από ιστοσελίδα 2 Χρόνια 6 Μήνες πριν #3594

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 405
  • Ληφθείσες Ευχαριστίες 87
nora έγραψε:
οταν το τρεχω βγαζει invalid error.. γιατί το κάνει αυτό?

Πρέπει να κάνεις copy - paste το μήνυμα του σφάλματος, όπως και μια περιγραφή πως έτρεξες τον κώδικα.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.340 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

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