Μετατροπη πολλαπλων διευθυνσεων http σε υπερσυνδεσμους  Το θέμα επιλύθηκε

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Μετατροπη πολλαπλων διευθυνσεων http σε υπερσυνδεσμους

Δημοσίευσηαπό kamar » 19 Σεπ 2014, 20:24

Επειδή εμφανίζονται πολλά μοτίβα στους υπερσυνδέσμους, δεν είναι δυνατή μια «συμπαγής» λύση.
Το καλύτερο που μπορώ να κάνω (με το χρόνο που έχω) είναι αυτό:

Κώδικας: Επιλογή όλων
#!/usr/bin/env python3
#-*- coding: utf-8 -*-

#filename: converturlsparse.py
#==================================================================================
# Copyright:
#
# Copyright (C) 2014 Konstas Marmatakis <marmako[at]gmail[dot]com>
#
# License:
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this package; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#===============================================================================

"""
Μετατροπή συνδέσμων από αρχείο txt σε αρχείο html, με δημιουργία
τίτλου.
Το αρχείο urls.txt πρέπει να βρίσκεται στον ίδιο κατάλογο με το
script.
"""
import urllib.parse


#Διάβασε το αρχείο με τους συνδέσμους.
fh = open('urls.txt', 'r')
urlsfromtxt = fh.read()
fh.close()
del(fh)

#Άνοιξε το html αρχείο για γράψιμο.
fh = open('urls.html', 'w')

#Γράψε τις επικεφαλίδες του αρχείου.
fh.write('''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml">
<head>\n
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>\n''')

#Επεξεργάσου έναν - έναν τους συνδέσμους.
# Αφαίρεσε την τελική κάθετο.
#Αφαίρεσε τους ειδικούς χαρακτήρες από το σύνδεσμο και
#χώρισε τον.
#Γράψε τον σύνδεσμο με περιγραφή στο html αρχείο.
for url in urlsfromtxt.splitlines():
url = url.strip('/')
url = urllib.parse.unquote(url)
spurl = urllib.parse.urlsplit(url)
titlos = spurl.path
titlos = titlos.replace('-', ' ')
titlos = titlos.strip('/')
fh.write("<a href={0}>{1}</a></br>\n".format(url, titlos.capitalize()))

#Κλείσε το αρχείο.
fh.write('</html>\n')
fh.close()


Επίσης το ερώτημα GET στον σύνδεσμο μπορεί να έχει διάφορες ονομασίες, ανάλογα με το όνομα της μεταβλητής που θα δώσει ο προγραμματιστής της ιστοσελίδας.
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 14.04 trusty 3.13.0-91-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD A6-5400K APU with Radeon HD Graphics ‖ RAM 3347 MiB ‖ ASUS F2A55-M LK2 PLUS
4 Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7540D] [1002:9991] {radeon}
5 eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09)
Άβαταρ μέλους
kamar
punkTUX
punkTUX
 
Δημοσιεύσεις: 166
Εγγραφή: 10 Μάιος 2008, 20:24
Τοποθεσία: Χανιά
Εκτύπωση

Re: Μετατροπη πολλαπλων διευθυνσεων http σε υπερσυνδεσμους  Το θέμα επιλύθηκε

Δημοσίευσηαπό Lionux » 21 Σεπ 2014, 16:57

Σε ευχαριστω πολυ για το χρονο σου , τελικα καταφερα να βρω λυση στο προβλημα με το σκριπτ που βρηκα στην παρακατω σελιδα :

Creating HTML Links with Page Titles using Raw URLs in Linux Shell
Spoiler: show
System: TOSHIBA Satellite A300
Distro: Ubuntu 14.04.5 trusty
Kernel: 3.13.0-107-generic
Desktop: KDE 4.13.3
Bios: INSYDE version: 2.20
CPU:Dual core Intel T3400
Graphics Card:[AMD/ATI] RV620/M82 [Mobility Radeon HD 3450/3470]
Audio Card: Intel 82801
Network Card: Qualcomm Atheros AR928X driver: ath9k
Επιπεδο linux:Μεσο
Aγγλικα:Μετρια
Προγραμματισμος:Oχι
Άβαταρ μέλους
Lionux
punkTUX
punkTUX
 
Δημοσιεύσεις: 173
Εγγραφή: 23 Νοέμ 2009, 02:26
Εκτύπωση

Re: Μετατροπη πολλαπλων διευθυνσεων http σε υπερσυνδεσμους

Δημοσίευσηαπό kamar » 21 Σεπ 2014, 23:24

Μια διαφορετική προσέγγιση, που την βρίσκω έξυπνη.
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 14.04 trusty 3.13.0-91-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD A6-5400K APU with Radeon HD Graphics ‖ RAM 3347 MiB ‖ ASUS F2A55-M LK2 PLUS
4 Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7540D] [1002:9991] {radeon}
5 eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 09)
Άβαταρ μέλους
kamar
punkTUX
punkTUX
 
Δημοσιεύσεις: 166
Εγγραφή: 10 Μάιος 2008, 20:24
Τοποθεσία: Χανιά
Εκτύπωση

Προηγούμενη

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι