Forum >> Principianti >> [RISOLTO] Parsing di html con beautifulsoup

Pagina: 1

Ciao a tutti, sono un principiante e sto imparando python grazie ai tutorial e a dei piccoli programmi da me creati.
In un programma per scopi lato SEO inserisco una keyword e il programma, interfacciandosi su un sito di tool SEO gratuito (keywordspy.com) mi restituisce tutte le parole chiave trovate. Questo è il codice, ma purtroppo il programma non mi restituisce nulla :(





import urllib2

import requests

from bs4 import BeautifulSoup




name=raw_input('Enter the keyword. Try it - ')

url = "http://www.keywordspy.com/research/search.aspx?q=" +name+ "&type=keywords&market=it#/tab=keyword-similar"

r = requests.get(url)

soup = BeautifulSoup(r.content, "html.parser")




g_data = soup.findAll('td', { "class" : "keyword" })




for tr in g_data:



print tr



--- Ultima modifica di Daniele aka Palmux in data 2016-04-09 10:13:10 ---
Non uso BeautifulSoup4, ma a parte la sintassi non correttamente indentata, mi sembra non ci siano errori. A questo punto penso semplicemente che quanto stai cercando di "parsare" non sia presente o non sia correttamente richiesto, alternativamente la pagina restituita sul browser potrebbe essere diversa da quella poi ottenuta?

Prova a fare una verifica ed utilizzare anche .find_all per cercare il termine di tuo interesse, ho fatto una veloce prova (su un altra risorsa) e sembra funzionare egregiamente.

Fai sapere.
Daniele
ciao, grazie della tua risposta..Ho trovato la soluzione: innanzitutto listo il codice

import urllib2
import requests
from bs4 import BeautifulSoup


name=raw_input('Enter the keyword. Try it - ')
url = "http://www.keywordspy.com/research/tab.aspx?name=keyword-similar&q=" + name + "&market=it"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")

g_data = soup.find_all('td', { "class" : "keyword" })

for tr in g_data:
    
    print tr
Come puoi vedere, l'url era sbagliata; i dati richiesti non sono presenti nella url iniziale perchè si tratta di dati restituiti tramite una chiamata ajax. Grazie dell'aiuto comunque :)
Ciao alex1986, capito ora su quest discussione mi potresti dire in che modo hai risolto per prelevare l'url corretto con l'esecuzione gia avvenuta degli script ajax?
grazie in anticipo

ciao


Pagina: 1



Esegui il login per scrivere una risposta.