Je ne connais pas très bien Python. J'essaie d'extraire les noms d'artiste (pour commencer :)) de la page suivante: http://www.infolanka.com/miyuru_gee/art/art.html .
Comment récupérer la page? Mes deux préoccupations principales sont: Quelles fonctions utiliser et comment filtrer les liens inutiles de la page?
Exemple utilisant urlib et lxml.html:
import urllib
from lxml import html
url = "http://www.infolanka.com/miyuru_gee/art/art.html"
page = html.fromstring(urllib.urlopen(url).read())
for link in page.xpath("//a"):
print "Name", link.text, "URL", link.get("href")
output >>
[('Aathma Liyanage', 'athma.html'),
('Abewardhana Balasuriya', 'abewardhana.html'),
('Aelian Thilakeratne', 'aelian_thi.html'),
('Ahamed Mohideen', 'ahamed.html'),
]
Je pense que "eyquem" serait mon choix aussi, mais j'aime bien utiliser httplib2 au lieu de urllib . urllib2 est une librairie de niveau trop bas pour ce travail .
import httplib2, re
pat = re.compile('<DT><a href="[^"]+">(.+?)</a>')
http = httplib2.Http()
headers, body = http.request("http://www.infolanka.com/miyuru_gee/art/art.html")
li = pat.findall(body)
print li
Vérifiez ceci mon ami
import urllib.request
import re
pat = re.compile('<DT><a href="[^"]+">(.+?)</a>')
url = 'http://www.infolanka.com/miyuru_gee/art/art.html'
sock = urllib.request.urlopen(url).read().decode("utf-8")
li = pat.findall(sock)
print(li)
Utilisez urllib2 pour obtenir la page.
Utilisez BeautifulSoup pour analyser le code HTML (la page) et obtenir ce que vous voulez!
Ou aller tout droit:
import urllib
import re
pat = re.compile('<DT><a href="[^"]+">(.+?)</a>')
url = 'http://www.infolanka.com/miyuru_gee/art/art.html'
sock = urllib.urlopen(url)
li = pat.findall(sock.read())
sock.close()
print li
Et respect robots.txt et étranglez vos requêtes :)
(Apparemment, urllib2 fait déjà cela utile SO post ).