Получить код продукта с URL, мне нужно регулярное выражение для этого? - PullRequest
1 голос
/ 15 августа 2010

URL выглядит так:

http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020

Мне нужно извлечь значение: abc23423

Я пробовал это регулярное выражение, но оно не работает:

rx = re.compile(r'PC=(\w*)&uy=')

I тогда я сделал:

pc = rx.search(url).groups()

но я получаю ошибку:

ошибка атрибута: нетипизированный объект не имеет групп атрибутов.

Ответы [ 3 ]

4 голосов
/ 15 августа 2010

Попробуйте urlparse .

2 голосов
/ 15 августа 2010

Обновление

Sheesh. О чем я думал?

import urlparse
u = 'http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020'
query = urlparse.urlparse(u).query
urlparse.parse_qs(query) # {'PC': ['abd23423'], 'uy': ['020']}

Оригинальный ответ

Этот фрагмент кода работал для меня. Взгляните:

import urlparse, re

u = 'http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020'
query = urlparse.urlparse(u).query

pattern = re.compile('PC=(\w*)&uy')
pattern.findall(query) # ['abd23423']
0 голосов
/ 15 августа 2010
lol = "http://www.example.com/cgi-bin/blahblah?&PC=abd23423&uy=020"
s = re.compile("&PC=(\w+)&uy=")
g = s.search(lol)
g.groups()
('abd23423',)

Кажется, это работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...