检索堆栈溢出的所有功能问题
我正在尝试编写一个程序来检索在特定标记中具有活动奖励的问题的所有链接。我还没有实现特定的标记功能,因为我只是试图获得所有的链接。检索栈溢出" title="堆栈溢出">堆栈溢出的所有功能问题
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,但我只是想弄清楚。
回答:
使用正则表达式对于通过特定标签获取问题将变得完全不可行。
你是正确的,你的正则表达式缺少很多标题,但在这种情况下使用findall确实不合适。 Beautiful soup,是一个更好的工具来检索链接,我建议你看看它。
然而,在这种情况下,Stack Exchange API你有覆盖。
对于类似的问题,只需搜索(或谷歌)通过API documentation,直到你看到你正在寻找的功能,在你的情况下featured question。
输入你想要的参数,和API将显示生成链接:
https://api.stackexchange.com/2.2/questions/featured?order=desc&sort=votes&tagged=python&site=stackoverflow
示例检索所有功能的Python问题
以上是 检索堆栈溢出的所有功能问题 的全部内容, 来源链接: utcz.com/qa/259894.html