我只想替换a-element中href-attribute的数据。这可以用正则表达式完成吗?
示例
<a href="tel:8196887620" value="+18196887620" target="_blank">8196887620</a>
我想你必须为<a ... >
创建一个正则表达式,然后为href
应用另一个正则表达式,然后再用另一个正则表达式获取"
之间的数据。这是正确的还是有更好的方法来做到这一点?也许是python中的库?
答案 0 :(得分:2)
使用BeautifulSoup
获取&#39;锚定&#39;标记href=
import urllib
from BeautifulSoup import *
url = raw_input('Enter - ')
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
tags = soup('a')
for tag in tags:
print tag.get('href', None)
答案 1 :(得分:2)
谢谢大家。 BeautifulSoup似乎还有很长的路要走。
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup('<p>Blah blah blah <a href="http://google.com">Google</a></p>')
for a in soup.findAll('a')
a['href'] = a['href'].replace("google", "mysite")
result = str(soup)
答案 2 :(得分:1)
你无法有效地使用regexp,因为它是一种(几乎)类型3的语言。 HTML是type2。
Altough作为快速而肮脏的解决方案,它们可能会起作用,但您将快速达到极限。在你的情况下,重点是。
如果你真的想要,这样的解决方案可能会有效:
/<a [^>]*href="([^"]*)"/
更好的解决方案是,如果你搜索xslt处理一点点。即使对于命令行,也有很好的xslt处理工具,他们为你做了。