Python Regex Re排除字符串并包含另一个字符串

时间:2016-04-02 08:24:16

标签: python regex web-scraping

我正在尝试仅将下面字符串的<a> </a>标记与“服务团队成员 - Ryde”匹配。

<a href="/cmp/_/job?jk=3711c253b2f3ccef&amp;tk=1a1dof">Services Team Members - Ryde</a>

挑战是在“... p / _ / job?”之后排除随机字符串。 目前我的解决方案包括结果中的随机

<a href="/cmp/_/job\?(.*)>(.*)</a>  

我已经研究过看似但却无法让他们工作

http://www.regular-expressions.info/lookaround.html

1 个答案:

答案 0 :(得分:1)

Don&#t; t(ever)用正则表达式解析HTML。使用解析器。

有一个很好的HTML解析器可用于Python,名为PyQuery,另一个名为BeautifulSoup。使用其中一个。

from pyquery import PyQuery as pq

doc = pq(url="http://your_url/")
link = doc("a:contains('Services Team Members - Ryde')")

print(link.attr("href"))

打印

'/cmp/_/job?jk=3711c253b2f3ccef&tk=1a1dof'

在你受到诱惑之前,不要用正则表达式解析URL。使用parser

from urlparse import urlparse, parse_qs

url = urlparse('/cmp/_/job?jk=3711c253b2f3ccef&tk=1a1dof')
params = parse_qs(url.query)

print(params)

打印

{'tk': ['1a1dof'], 'jk': ['3711c253b2f3ccef']}