Python是一種廣泛使用的高級編程語言,能夠進行快速開發(fā)和完成各種任務(wù)。其中,利用Python爬取知網(wǎng)專利是極為常見的應(yīng)用之一。
# 導(dǎo)入需要的庫 import requests from bs4 import BeautifulSoup import csv # 模擬頭文件 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'} # 定義爬蟲函數(shù) def get_patent_info(num, writer): url = 'https://kns.cnki.net/kns/brief/brief.aspx?pagename=' + str(num) + '&t=1,2,3,4,5,6,7,8,9,10,11,12,13&k=python&ck=' html = requests.get(url, headers=headers).text soup = BeautifulSoup(html, 'html.parser') results = soup.select('.GridTableContent tr')[1:] for result in results: tds = result.select('td') title = tds[1].find('a').text.strip() author = tds[2].text.strip() school = tds[3].text.strip() publish_time = tds[4].text.strip() writer.writerow([num, title, author, school, publish_time]) # 寫入CSV文件 with open('patent.csv', 'w', encoding='utf-8-sig', newline='') as file: writer = csv.writer(file) writer.writerow(['Page Number', 'Title', 'Author', 'School', 'Publish Time']) for i in range(1, 11): get_patent_info(i, writer)
上述代碼使用了requests和BeautifulSoup庫,向知網(wǎng)專利頁面發(fā)送請求并獲取頁面中的信息。我們通過選擇器選擇表格中的信息,將其保存到CSV文件中,以便后續(xù)處理。
在爬取知網(wǎng)專利的過程中,需要注意一些問題。首先,需要模擬瀏覽器頭文件,以免被知網(wǎng)屏蔽。其次,發(fā)起的請求需要針對每一頁,因此需要通過循環(huán)將每一頁的數(shù)據(jù)寫入CSV文件中。
總之,Python在爬取知網(wǎng)專利方面具有很大的優(yōu)勢和靈活性,可以幫助我們完成快速、精確和高效的數(shù)據(jù)采集和處理。
上一篇vue中過渡高度