Lime_In_The_Coconut
Profilo di
Nome | Lime_In_The_Coconut |
---|---|
Indirizzo email | n/a |
Messaggi | 11 |
-
- 2017-01-19 22:10:51
- ricerca immagini
- Forum >> Programmazione Python >> Web e Reti
- Ciao a tutti,
sto scrivendo un programma che, data una lista di url, per ciascun url ne estrae le immagini.
il problema è che non riesco a tirare fuori tutte le immagini da alcuni siti web.
il codice è il seguente:dict={} lista=[] for url in url_list: r = requests.Session() html = r.get(url) soup = bs4.BeautifulSoup(html.content, "html5lib") if re.search(pattern,soup.get_text()): continue for img in soup.find_all(name="img"): src = img.get("src") lista.append(src) dict = lista lista = []
il problema ad esempio è che per l'url: http://www.morguefile.com/search/morguefile/1/yoga/pop ricevo il seguente output:
http://www.morguefile.com/search/morguefile/1/yoga/pop ['/img/icon_search.svg', '/img/icon_quest.png', '/img/icon_search_close.svg', '/img/prm/iStock_white.png', '/img/icon_sort.svg', '/img/prm/iStock_white.png', '/img/prm/iStock_white.png', '/img/prm/istockclosePopup.png', '/img/prm/iStock ByGI TM white.png']
Non riesco a capire perchè.. analizzando la pagina ci sono molti tag img e questi non vengono catturati..
--- Ultima modifica di Lime In The Coconut in data 2017-01-19 22:13:05 ---
--- Ultima modifica di Lime In The Coconut in data 2017-01-19 22:14:43 ---
--- Ultima modifica di Lime In The Coconut in data 2017-01-19 22:14:53 ---
--- Ultima modifica di Lime In The Coconut in data 2017-01-19 22:15:40 ---
--- Ultima modifica di Lime In The Coconut in data 2017-01-19 22:15:56 ---
--- Ultima modifica di Lime In The Coconut in data 2017-01-19 22:38:00 ---
--- Ultima modifica di Lime In The Coconut in data 2017-01-19 22:38:41 ---
-
- 2016-11-28 17:06:16
- Re: Banale: IF e PyQT
- Forum >> Principianti
- Ciao, per il primo problema la soluzione sembra semplice: dato che le stringhe hanno simile struttura ti basta lavorare con gli indici per prendere quello che ti serve.
ecco un esempiolista=[] >>> for elem in a: lista.append(elem[0:3])
-
- 2016-11-27 17:08:12
- comprendere i generatori
- Forum >> Principianti
- Ciao a tutti,
sto cercando di comprendere la funzione dei generatori con kw yield. Ho preso questo codice in rete e da solo ho provato a modificarlo con yield, ma ancora riesco a ottenere il risultato sperato:
import time def red_cars(answer): n = 0 while True: if answer == 'yes': n = n + 1 yield n else: yield n stop = time.time() + 5 * 60 while time.time() < stop: answer = input('Did you spot a red car on the road? ("yes" or "no"): ') times = red_cars(answer) print(next(times))
Se rispondo yes il risultato della print è 1, ma alla successiva domanda anche se rispondo yes il risultato è fermo a 1.
Yield non dovrebbe registrare un risultato e mantenerlo sino alla prossima chiamata next()?
grazie
--- Ultima modifica di Lime In The Coconut in data 2016-11-27 17:12:38 ---
-
- 2016-11-09 13:19:06
- Re: gestire errori di requests
- Forum >> Programmazione Python >> Web e Reti
- ok per gestire il problema e non interrompere il programma faccio così:
request_list=[] for url in no_duplicate: try: res=requests.get(url) print(res) res.raise_for_status() soup2 = bs4.BeautifulSoup(res.text, "html5lib") request_list.append(soup2) except requests.exceptions.HTTPError: print("connessione non riuscita") except requests.exceptions.TooManyRedirects: print("TooManyRedirects")
per ora va bene con gli errori che sto trovando e ottengo comunque una lista dove ciascun elemento è il codice sorgente di una pagina
-
- 2016-11-09 12:33:06
- gestire errori di requests
- Forum >> Programmazione Python >> Web e Reti
- Ciao a tutti,
sto creando uno script che chiede all'utente di inserire una keyword, dopodichè apre la prima pagina dei risultati di ricerca di google, colleziona tutti i link dei risultati in una lista e, con i moduli BeautifulSoup e requests crea una nuova lista dove ciascun elemento è il codice sorgente della pagina.
L'obiettivo successivo è analizzare ogni singola pagina (meta dati, testo, etc) ma per ora sono fermo a un problema.
Per ogni richiesta non sempre ottengo un response 200.
A volte mi arrivano errori 403 o TooManyRedirects.
Addirittura in un link a cui lo script non riesce ad accedere, e che ho provato a inserire nella barra degli indirizzi, google mi dice "rileviamo traffico insolito proveniente dal tuo computer"
Come posso gestire la cosa? Per lo meno aggirando il problema ignorando l'errore?
Grazie
--- Ultima modifica di Lime In The Coconut in data 2016-11-09 12:34:07 ---
-
- 2016-11-07 22:05:26
- Re: analizzare file
- Forum >> Principianti
- Ciao Daniele,
riposto innanzitutto il codice che ho modificato un po':
def ricerca_elemento(file,elem): lista=[] with open(file,encoding="UTF-8",errors="replace") as f: s=f.readlines() print(s) count=0 for line in s: if elem.lower() in line: lista.append(line) count+=1 print(lista) print(count) finito=False while not finito: richiesta=input("Digita il nome del file: ") elemento=input("Digita elemento da cercare: ") ricerca_elemento(richiesta,elemento) s1=input("----Finisco? ") finito=s1.lower()=="si"
Allora ho creato di nuovo un file di testo e stavolta funziona, stampa la prima riga se la parola cercata è all'inizio. Il problema è che nel file che ho creato (frasi.txt) la prima parola della prima riga è minuscola, e quindi funziona.
quelle delle altri file invece iniziavano con la lettera maiuscola.
I problemi però sono due:
1) con un elem.lower() non risolvo il problema
2) nel file frasi.txt se cambio la prima parola da tutto minuscolo a prima lettera maiuscola, e scrivo il termine da ricercare esattamente uguale (es: Cane) non trova nulla
non so dove può essere la soluzione
vi allego comunque il file, forse è un problema di codifica.. ho messo comunque una gestione degli errori perchè in alcuni file ho problemi, non in questo che ti allego
Grazie mille
ps io sto vedendo young pope, devo dire che è molto bello (un po' pesante come al solito, però fico)
ciao
-
- 2016-11-06 19:04:04
- analizzare file
- Forum >> Principianti
- Ciao a tutti,
sto creando una funzione che prende in ingresso un file e un elemento e stampa le righe del file dove e' contenuto l'elemento in questione piu' il numero delle volte trovato
il problema e' che non funziona con tutte le parole nel file, ad esempio di un qualsiasi file non stampa la prima parola della prima riga.
Questo e' il codice:
def ricerca_elemento(file,elem): lista=[] f=open(file,encoding="UTF-8") s=f.readlines() print(s) count=0 for line in s: if elem in line: lista.append(line) count+=1 print(lista) print(count)
probabilmente il codice si puo' scrivere meglio, pero' non capisco perche' alcune parole le rileva e altre no
grazie in anticipo
-
- 2016-10-02 15:45:59
- sommare elementi di una lista
- Forum >> Principianti
- ciao a tutti, come da titolo, come posso sommare tutti gli elementi di una lista di interi??
grazie
-
- 2016-09-27 18:51:09
- reiniziare un programma
- Forum >> Principianti
- Ciao a tutti.
sto scrivendo un semplice script per valutare se un triangolo è scaleno, equilatero o isoscele:
def controllo(x): if x.isdecimal() and x>'0': x=int(x) print ("numero corretto") else: print ("errore: inserire interi positivi maggiori di zero") a=input("Digita il primo intero positivo: ") controllo(a) b=input("Digita il secondo intero positivo: ") controllo(b) c=input("Digita il terzo intero positivo: ") controllo(c)
vorre che nella funzione controllo() qualora si inserissero dati non validi il programma ricominciasse dall'inizio invece che continuare. come posso fare?
Grazie mille
--- Ultima modifica di Lime In The Coconut in data 2016-09-27 18:51:38 ---
--- Ultima modifica di Lime In The Coconut in data 2016-09-27 18:59:27 ---
--- Ultima modifica di Lime In The Coconut in data 2016-09-27 19:00:09 ---
--- Ultima modifica di Lime In The Coconut in data 2016-09-27 19:40:34 ---
-
- 2016-09-16 21:41:49
- Cifrario di Cesare
- Forum >> Principianti
- Ciao a tutti,
ho da poco inziato a studiare Python e la programmazione in generale, e vorrei chiedervi un aiuto in merito ad uno script che ho incontrato in un libro e che non riesco a comprendere appieno.
Lo script praticamente simula il metodo di cifratura noto come "Cifrario di Cesare": in una parola, ciascuna lettera contenuta viene trasformata in un'altra lettera distante dalla prima un certo numero di passi (ad esempio: "Cane", se scegliamo come distanza 1, verrà trasformata in "Dbof" - spero di essermi spiegato, su wikipedia comunque trovate una descrizione maggiormente dettagliata: https://it.wikipedia.org/wiki/Cifrario_di_Cesare
Lo script chiede all'utente di inserire una stringa da decifrare (una password diciamo) e di stabilire la distanza, dopodiché effettua la conversione:
plainText=input("Digita una parola in lettera minuscola: ") distance=int(input("Digita il valore della distanza: ") code="" for ch in plainText: ordValue=ord(ch) cipherValue = ordValue + distance if cipherValue > ord('z'): cipherValue= ord('a') + distance - \ (ord('z') - ordValue+1) code+=chr(ciphervalue) print(code)
Mi è tutto chiaro sino alla riga 8: partiamo dal presupposto che le lettere minuscole dell'alfabeto italiano sono 26 (si parte da 0, quindi la lettera 'z' ha il valore 25 - non sto usando qui i corrispettivi valori numerici in ASCII)
Quindi, se ad esempio mi trovo davanti la lettera con ordinale 22 ("w") e pongo la distanza a 6, andrò a sforare oltre la lettera 'z' innescando le istruzioni contenute nell'if
quello che non mi è chiaro è l'operazione contenuta nella variabile cipherValue contenuta nell'if: calcolo la distanza da 'a' (quindi es 0+6) a cui sottraggo il valore di 'z' meno l'ordinale della lettera ciclata più 1, nel nostro esempio: (0+6)-(25-23)=6-2=4.
quindi sostituisco 'w' con 'e'....Giusto??
Non mi è chiara principalmente la seconda espressione (ord('z')-OrdValue+1)
Inoltre non riesco a capire lo slash \ a riga 8
Vi ringrazio infinitamente per l'aiuto, in matematica sono un po' arrugginito, quindi forse è per questo che mi blocco...
Grazie!!!
--- Ultima modifica di Lime In The Coconut in data 2016-09-16 21:43:57 ---
--- Ultima modifica di Lime In The Coconut in data 2016-09-16 21:46:41 ---