今天我在 Alexa API 上工作,使用这段代码获得网站的流行度排名:
import urllib.request, sys, re
site = 'https://stackoverflow.com/questions/'
xml = urllib.request.urlopen('http://data.alexa.com/data?cli=10&dat=s&url=%s'%site).read()
try: rank = int(re.search(r'<POPULARITY[^>]*TEXT="(\d+)"', xml).groups()[0])
except: rank = -1
print('Your rank for %s is %d!\n' % (site, rank))
它工作得很好,但突然停止了!,我手动检查了 API 链接:
http://data.alexa.com/data?cli=10&dat=s&url=https://stackoverflow.com/questions/
它只返回一个单词“Okay”而不是一个 XML 字符串..有什么问题?!
最佳答案
这可能就是你要找的
from bs4 import BeautifulSoup
import urllib.request
url='wikipedia.com'
rank_str =BeautifulSoup(urllib.request.urlopen("https://www.alexa.com/minisiteinfo/" +url),'html.parser').table.a.get_text()
rank_int=int(rank_str.replace(',',''))
print(rank_int)
关于python - Alexa 网站排名 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50279057/