python - 如何通过 BS4 获取维基百科页面的维基数据项的 Q 编号?

标签 python wikipedia beautifulsoup

您可以在 Wikipedia page 左侧边栏的工具下找到维基数据项 。如果将鼠标悬停在该 上,您可以找到如下链接地址,末尾带有 Q 号。 https://www.wikidata.org/wiki/Special:EntityPage/Q15112 。 如何提取 Q 号码?

from bs4 import BeautifulSoup
import requests

getUrl= 'https://en.wikipedia.org/wiki/Ariyalur_district'
url = getUrl
content = requests.get(url).content
soup = BeautifulSoup(content,'lxml')
#extracting page title
firstHeading = soup.find('h1',{'class' : 'firstHeading'})
print(firstHeading.text +'~')

到目前为止,我的代码是好的。我试图通过下面的代码获取 Q 号码,但我不能。请指导我。

QNumber = soup.find('li','t-wikibase')
print(QNumber)

如何获得Q号码?

最佳答案

您需要显式指定您要查找的选择器,在本例中为 id:

In [1601]: QNumber = soup.find('li', {'id' : 't-wikibase'})

In [1604]: QNumber.a['href']
Out[1604]: 'https://www.wikidata.org/wiki/Special:EntityPage/Q15112'

如果您只想要此链接末尾的数字,您可以这样做:

In [1605]: QNumber.a['href'].rsplit('/')[-1]
Out[1605]: 'Q15112'

关于python - 如何通过 BS4 获取维基百科页面的维基数据项的 Q 编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45000440/

相关文章:

python - Celery - 任务重试导致奇怪的错误

python - 来自类别列中的类标记的多个数据帧的 pairplot 列

google-api - 从 Google 获取定义的最佳方式?

python - 从源代码 : default pickle behavior changed 编译的 Pandas

python 和 selenium webdriver 等待时间等于特定时间

c# - 维基链接 - 将文本 [[a]] 变成内部链接

wiki - 如何从Wikipedia获取信息框数据?

Python: 'ascii' 编解码器无法对字符进行编码

html - 如何使用 BeautifulSoup/lxml 将子 DOM 节点合并/折叠到父节点中?

javascript - Python3 - 我不想用 BeautifulSoup 打印 Javascript 代码