inf*_*mer 2 python wikipedia beautifulsoup
您可以在该维基百科页面左侧边栏的“工具”下找到即维基数据项。如果将鼠标悬停在该 上,您可以找到如下链接地址,末尾带有 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 +'~')
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码很好。我试图通过下面的代码获取 Q 号码,但我不能。请指导我。
QNumber = soup.find('li','t-wikibase')
print(QNumber)
Run Code Online (Sandbox Code Playgroud)
如何获得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'
Run Code Online (Sandbox Code Playgroud)
如果您只想要此链接末尾的号码,您可以这样做:
In [1605]: QNumber.a['href'].rsplit('/')[-1]
Out[1605]: 'Q15112'
Run Code Online (Sandbox Code Playgroud)