Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

António Oliveira

Expressões regulares com uma string muito longa

Mensagens Recomendadas

António Oliveira    0
António Oliveira

 

 re.match( r'fileKey: "(.*).mp4"', html,re.MULTILINE) não consegue capturar nada. Mesmo usando qualquer padrão mais simples, a partir do momento em que use uma string  suficientemente grande (copiada a partir de html e em substituição dela). Por exemplo:

line ='href="//ajax.googleapis.com" rel="dns-prefetch"/><meta content="110253572394348" property="fb:pages"/> <title>Casa cheia em Madrid para ver e ouvir David Fonseca - Cultura - RTP Notícias</title><meta content="O músico português esteve em Espanha para apresentar o último álbum, totalmente cantado em português." name="description"/><meta content="cultura" name="section"/> <meta content="Casa cheia em Madrid para ver e ouvir David Fonseca" property="og:title"/>'

mo = re.match( r'Madrid(.*)Fonseca', line)

 

Mas já sou  bem sucedido com:

 

line ='href="//ajax.googleapis.com" rel="dns-prefetch"/><meta content="110253572394348" property="fb:pages"/>'

mo = re.match( r'href(.*).com"', line)

Como faço para lidar com este problema?

# -*- coding: utf-8 -*-
#import the library used to query a website
from urllib.request import urlopen
#specify the url
rtp = "https://www.rtp.pt/noticias/cultura/casa-cheia-em-madrid-para-ver-e-ouvir-david-fonseca_v897602"
#Query the website and return the html to the variable 'page'
page = urlopen(rtp)
#import the Beautiful soup functions to parse the data returned from the website
from bs4 import BeautifulSoup
#Parse the html in the 'page' variable, and store it in Beautiful Soup format
soup = BeautifulSoup(page, "lxml")
#Get the content as a string
html = str(soup.html)
#import the library used for regular expressions
import re
mo = re.match( r'fileKey: "(.*).mp4"', html,re.MULTILINE)

 

 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
António Oliveira    0
António Oliveira

Já vi qual é o problema. Tenho que usar search() em vez de match().

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade