padrão regex em python para analisar tags de título HTML
Eu estou aprendendo a usar tanto ore
módulo e ourllib
módulo em python e tentando escrever um simples web scraper. Aqui está o código que eu escrevi para raspar apenas o título dos sites:
#!/usr/bin/python
import urllib
import re
urls=["http://google.com","https://facebook.com","http://reddit.com"]
i=0
these_regex="<title>(.+?)</title>"
pattern=re.compile(these_regex)
while(i<len(urls)):
htmlfile=urllib.urlopen(urls[i])
htmltext=htmlfile.read()
titles=re.findall(pattern,htmltext)
print titles
i+=1
Isso dá a saída correta para o Google e o Reddit, mas não para o Facebook - assim:
['Google']
[]
['reddit: the front page of the internet']
Isso porque, achei que na página do Facebooktitle
tag é a seguinte:<title id="pageTitle">
. Para acomodar o adicionalid=
Modifiquei othese_regex
variável da seguinte forma:these_regex="<title.+?>(.+?)</title>"
. Mas isso dá a seguinte saída:
[]
['Welcome to Facebook \xe2\x80\x94 Log in, sign up or learn more']
[]
Como eu combinaria os dois para que eu possa levar em conta quaisquer parâmetros adicionais passados dentro dotitle
tag?