Forum >> Programmazione Python >> Web e Reti >> BeautifulSoup

Pagina: 1

Salve,
stavo provando BeautifulSoup e Selenium, e mi sono accorto che certe volte alcune informormazione del codice html (soprattutto div e input ) non sono visibili, domande:
1- Se cambio parser (attualmente uso html.parser) posso vedere le informazzioni nascoste?
2- Come faccio a vedere tutte le informazioni?
3- Come fa il web developer a nasconderle?

Grazie mille.


--- Ultima modifica di khan in data 2017-03-12 20:16:32 ---
Ciao caro, cosa intendi per nascosti, intendi div e/o input settati via css, javascript o html?

Fai qualche esempio della pagina sorgente o del sito da dove non riesci a carpire le informazioni, magari capiamo meglio.

Cya
Ho risolto (:
il codice del sito è generato tramite js, quindi dovevo aspettare che la pagina si caricasse e poi eseguire uno script con document.getElementBy...
Ho un altro problema,

#!c:\Python27\python.exe

import cgi, cgitb
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

url = "localhost/test/index.html"
par = "html.parser"

#in futuro userò PhantomJS
driver = webdriver.Firefox(executable_path = r"C:\geckodriver.exe")
driver.get(url)

Inp = driver.find_element_by_name("inserimento")
Inp.clear()
Inp.send_keys("prova123")
Inp.send_keys(Keys.RETURN)

driver.implicitly_wait(10)
.
. Scraping...
.

print ("Content-type:text/html\r\n\r\n")
print ('<html>')
print ('<head>')
print ('<title>Scraping Test</title>')
print ('</head>')
print ('<body>')

for d in data:
print( '<h1>' + d.text + '</h1>' )
driver.quit()

print ('</body>')
print ('</html>')


------------------------------------------------------------------------------
Io in futuro dovrei mettere lo script in un sito web, avete altre soluzione? Il progetto richiede scalabilità quindi utilizzerò dei servizi offerti dai vari provider(google, amazon o azure)... tenendo conto di cio, che consigli dareste a un povero nabbo?



--- Ultima modifica di khan in data 2017-03-16 19:00:12 ---


Pagina: 1



Esegui il login per scrivere una risposta.