Come scrivere uno script Python per cercare in un sito Web HTML i collegamenti corrispondenti
Domanda
Non ho molta familiarità con Python e devo scrivere uno script per eseguire una serie di funzioni.Fondamentalmente il modulo di cui ho ancora bisogno è come controllare il codice di un sito web per verificare la corrispondenza dei collegamenti forniti in anticipo.
Soluzione
Collegamenti corrispondenti cosa?Il loro attributo HREF?Il collegamento visualizza il testo?Forse qualcosa del tipo:
from BeautifulSoup import BeautifulSoup, SoupStrainer
import re
import urllib2
doc = urllib2.urlopen("http://somesite.com").read()
links = SoupStrainer('a', href=re.compile(r'^test'))
soup = [str(elm) for elm in BeautifulSoup(doc, parseOnlyThese=links)]
for elm in soup:
print elm
Ciò catturerà il contenuto HTML di somesite.com
e poi analizzarlo utilizzando BeautifulSoup, cercando solo i collegamenti il cui attributo HREF inizia con "test".Quindi crea un elenco di questi collegamenti e li stampa.
Puoi modificarlo per fare qualsiasi cosa usando il file documentazione.
Altri suggerimenti
In generale, è possibile utilizzare urllib , urllib2 (htmllib ecc) per la programmazione web in Python. si potrebbe anche usare Mechanize , ricciolo ecc Poi per l'elaborazione di HTML e ottenere link, si vorrebbe usare parser come BeautifulSoup .
prova Scrapy, il quadro di estrazione web più completo.