Python 如何获取Wikidata项';BS4提供的wikipedia页面的Q号?

Python 如何获取Wikidata项';BS4提供的wikipedia页面的Q号?,python,wikipedia,bs4,Python,Wikipedia,Bs4,您可以在本文左侧栏的工具下找到Wikidata项。如果您将鼠标悬停在上面,您可以找到链接地址,如下所示,最后是Q-number。 . 如何提取Q值 from bs4 import BeautifulSoup import requests getUrl= 'https://en.wikipedia.org/wiki/Ariyalur_district' url = getUrl content = requests.get(url).content soup = BeautifulSoup(c

您可以在本文左侧栏的工具下找到Wikidata项。如果您将鼠标悬停在上面,您可以找到链接地址,如下所示,最后是Q-number。 . 如何提取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
,在本例中:

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 +'~')
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'

您需要明确指定要查找的选择器,在本例中为
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'

当我在python3中运行代码[1604]时,终端'NoneType'对象没有属性'a'中会出现以下注意事项:@info farmer使用“html.parser”而不是“lxml”,这就是我所使用的。@COLDSPEED根据您的指导原则,我与我的朋友聊天,并按如下方式编码。@info farmer很高兴知道!如果有帮助,请投票/接受。这对社区很有帮助。当我在python3中运行代码[1604]时,在终端“非类型”对象没有属性“a”时会出现以下通知:@info farmer使用“html.parser”而不是“lxml”,这就是我所使用的。@COLDSPEED根据您的指导原则,我与我的朋友聊天,并按如下方式编码。@info farmer很高兴知道!如果有帮助,请投票/接受。它有助于社区。