2024-04-25 17:57:01 发布
网友
我有一个网站,上面有类似<a href="http://www.example.com?read.php=123">有谁能告诉我如何使用python获得这些链接中的所有数字(在本例中是123个)?我不知道如何构造正则表达式。提前谢谢。
<a href="http://www.example.com?read.php=123">
如果您有问题,并决定使用regex,现在您有两个问题
如果您正在阅读一个特定的网页,并且您知道它是如何格式化的,那么regex就可以了——您可以使用S.Mark的答案。要解析一个特定的链接,可以使用Kimvai的答案。但是,要从一个页面获取所有链接,最好使用更严肃的内容。你提出的任何正则表达式解决方案都会有缺陷
我推荐mechanize。如果您注意到,那里的Browser类有一个links方法,它可以获取页面中的所有链接。它的另一个好处是可以为您下载页面=)。在
Browser
links
不管你的链接是如何格式化的(例如,如果有些链接看起来像<a href="foo=123"/>,而有些看起来像<A TARGET="_blank" HREF='foo=123'/>),这都是有效的。在
<a href="foo=123"/>
<A TARGET="_blank" HREF='foo=123'/>
import re from BeautifulSoup import BeautifulSoup soup = BeautifulSoup(html) p = re.compile('^.*=([\d]*)$') for a in soup.findAll('a'): m = p.match(a["href"]) if m: print m.groups()[0]
import re re.findall("\?read\.php=(\d+)",data)
如果您有问题,并决定使用regex,现在您有两个问题
如果您正在阅读一个特定的网页,并且您知道它是如何格式化的,那么regex就可以了——您可以使用S.Mark的答案。要解析一个特定的链接,可以使用Kimvai的答案。但是,要从一个页面获取所有链接,最好使用更严肃的内容。你提出的任何正则表达式解决方案都会有缺陷
我推荐mechanize。如果您注意到,那里的
Browser
类有一个links
方法,它可以获取页面中的所有链接。它的另一个好处是可以为您下载页面=)。在不管你的链接是如何格式化的(例如,如果有些链接看起来像
<a href="foo=123"/>
,而有些看起来像<A TARGET="_blank" HREF='foo=123'/>
),这都是有效的。在相关问题 更多 >
编程相关推荐