【发布时间】:2011-07-17 13:03:58
【问题描述】:
我目前正在学习 Python,我正在尝试制作一个小型刮刀,但我遇到了 Beautiful Soup 和正则表达式的问题。
我正在尝试匹配具有以下 html 的站点中的所有链接:
<td>
<a href="/l1234/Place+Number+1">Place Number 1 </a>
</td>
<td width="100">
California </td>
<td>
<a href="/l2342/Place+Number+2">Place Number 2 </a>
</td>
<td width="100">
Florida </td>
我想获取以下所有链接:“/lxxxx/Place+Number+x”
我正在为此使用 python 和 beautifulsoup:
import BeautifulSoup
import urllib2
import re
address = 'http://www.example.com'
html = urllib2.urlopen(address).read()
soup = BeautifulSoup(html)
for tag in soup.findAll('a', id = re.compile('l[0-9]*')):
print tag['href']
我在一些示例代码中找到了 soup.findAll 中的正则表达式部分,因为我似乎无法从 BeautifulSoup 文档中获取示例。没有正则表达式部分,我得到了页面上的所有链接,但我只想要“lxxx”的
我的正则表达式有什么问题?也许有一种方法可以不使用正则表达式,但我似乎找不到方法。
【问题讨论】:
-
您在哪里看到 id = lXXX?这是关于href!
-
感谢您使用 html 解析器 上帝今天看到您的帖子时创造了一只小猫。尝试匹配 href 而不是 id!
-
啊,是的,我不确定我找到的代码示例中的那部分。谢谢!
标签: python regex beautifulsoup