【发布时间】:2015-06-01 16:01:57
【问题描述】:
我正在尝试编写一个程序来检索在特定标签中具有活动赏金的问题的所有链接。我还没有实现特定的标签功能,因为我只是尝试获取所有链接。
from re import findall
from urllib.request import urlopen
def fetch_source(url):
return str(urlopen(url).read())
site = 'http://stackoverflow.com/?tab=featured'
def fetch_links(source):
source = fetch_source(source)
return findall("\/questions\/[0-9]*\/(?:[A-z]|\-)+", source)
print(fetch_links(site))
这将获取许多链接,但它会丢失很多链接,因为我的正则表达式只允许标题中的[A-z]|\-。我不确定如何解决这个问题,因为有些问题的标题中有引号,如果我允许这些,我将不知道问题链接何时结束?
我很抱歉刚接触 python,但我只是想弄清楚一些事情。
【问题讨论】:
-
您不应该使用 re.findall 检索链接。请查看 Stack Exchange API。
-
仅供参考
[A-z]相当于[A-Z\[\\\]^_`a-z]
标签: python regex python-2.7