Python 使用xpath或正则表达式(或其他)确定找到的字符串是否包含在超链接中

Python 使用xpath或正则表达式(或其他)确定找到的字符串是否包含在超链接中,python,regex,xpath,web-scraping,lxml,Python,Regex,Xpath,Web Scraping,Lxml,在一个页面上,例如,在超链接后面列出了各个工作(但我的程序还不知道这一点;它所知道的只是它已经到达了一个工作列表页面) 给定一个搜索词,例如“高级项目经理”,我将刮取页面的源代码,以确定页面是否包含此字符串 search_term = 'senior project manager' url = 'http://british-business-bank.co.uk/what-the-british-business-bank-does/job-vacancies/' source = urll

在一个页面上,例如,在超链接后面列出了各个工作(但我的程序还不知道这一点;它所知道的只是它已经到达了一个工作列表页面)

给定一个搜索词,例如“高级项目经理”,我将刮取页面的源代码,以确定页面是否包含此字符串

search_term = 'senior project manager'
url = 'http://british-business-bank.co.uk/what-the-british-business-bank-does/job-vacancies/'
source = urllib2.urlopen(url).read().lower()
found_a_match = search_term in source
在这种情况下,使用
search\u term
True,我想确定完整的工作描述是否在超链接后面。手动检查源显示:

<p><a href="http://british-business-bank.co.uk/?p=6419">Senior Project Manager &#8211; Northern Powerhouse Investment Fund</a></p>

我想我可以再次解析源代码,这一次是为前面有
的搜索词寻找匹配项,但我有一种(可能是毫无根据的)感觉,这可能有点脆弱。什么是更稳健的方法


注意:我知道我可以研究BeautifulSoup、lxml、scrapy等来实现这一点,但考虑到速度至关重要,而且一旦我确定了这个超链接与否,就几乎没有什么解析要去做了,我希望事情保持简单。

我最近不得不构建一个解决方案,该解决方案将忽略
标记中的任何匹配项。我的做法如下:

在预处理过程中,搜索并记录所有
字符串的位置——我使用了一个数组,其中每个条目分别包含
的开始和停止位置


然后,在搜索匹配项时,确定匹配项是否在超链接标记内只需浏览标记的开始/停止位置列表,并查看匹配项的偏移量是否在其中任何一个位置内。

我最近不得不构建一个解决方案,忽略
标记内的任何匹配项。我的做法如下:

在预处理过程中,搜索并记录所有
字符串的位置——我使用了一个数组,其中每个条目分别包含
的开始和停止位置


然后,在搜索匹配项时,确定匹配项是否在超链接标记中只需浏览标记的开始/停止位置列表,并查看匹配项的偏移量是否在其中任何一个位置内即可。

我认为,解析HTML和应用XPath表达式不会增加开销,在我看来,解析HTML和应用XPath表达式不会带来额外的开销,这正是您所需要的。