隨著互聯網技術的飛速發展,信息化程度越來越高,知識的獲取也愈加方便。其中知網上的論文、期刊、學位論文等吸引了廣大學術界人士的目光。但是,手動篩選和查找需要的資料是一項繁瑣的工作,為了能夠快速地獲取自己所需要的文獻資料,我們可以利用Python語言爬取知網上的摘要信息。
import requests
import re
from bs4 import BeautifulSoup
search_url = 'http://search.cnki.net/Search.aspx?q=Python&rank=relevant&cluster=&val=&p='
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
def get_abstract(session, url):
page = session.get(url, headers=headers)
soup = BeautifulSoup(page.text, 'html.parser')
abstract = soup.find('span', {'id': 'ChDivSummary'}).text
return abstract
if __name__ == '__main__':
session = requests.Session()
for page_num in range(1, 3):
search_page = session.get(search_url + str(page_num), headers=headers)
soup = BeautifulSoup(search_page.text, 'html.parser')
for a in soup.find_all('a', href=True):
if re.search('http://kns.cnki.net/KCMS/detail', a['href']):
abstract_page = session.get(a['href'], headers=headers)
print(get_abstract(session, abstract_page.url))
session.close()
以上代碼利用Python爬取了知網上Python關鍵詞的前兩頁摘要信息,并將其打印在控制臺上。我們可以根據需要修改代碼中的檢索關鍵詞、檢索頁數等參數來實現自己的需求。
需要注意的是,知網的數據是有版權保護的,請在使用爬蟲之前仔細閱讀相關法律條文并遵循中國法律法規。