笔者这几天受团队任务安排,需要写一份儿关于知网(中国优秀硕士学位论文数据库 入口:http://gb.oversea.cnki.net/kns55/brief/result.aspx?dbPrefix=CMFD
)的代码,主要是爬取论文的作者信息、论文副标题、学位授予年度、学校、引用频次等,例如在关键词搜索一下医疗保险:
表格的相关信息都可以爬取,点进每一篇文章以后,对应的关键词、副标题信息也可以爬取,只是笔者此次不需要设计下载原文,所以没有写相关代码,但是整个分析格式是一样的,可以根据关键词的爬取方式去寻找下载的url。对于这个内容的爬取,似乎对于访问的限制不太严格,笔者基本不考虑sleep时间,先贴出代码:
# -*- coding:utf-8 -*-
__author__ = 'TengYu'
import requests
import re
from lxml import etree
import json
import time
import xlwt
import sys
reload(sys)
sys.setdefaultencoding('utf8')
headers = {
'User-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0',
'Cookie':'Your-cookie'
}
class PageList(object):
def __init__(self,maxpage):
self.maxpage = maxpage
def getUrl(self):
f1 = open("title_4_4.txt",'w')
f2 = open("subtitle.txt",'w')
f3 = open("keywords_4_4.txt",'w')
excel = xlwt.Workbook(encoding='utf-8')
sheet = excel.add_sheet('sheet1')
sheet.write(0, 0, '论文中文题目')
sheet.write(0, 1, '论文作者')
sheet.write(0, 2, '作者学校')
sheet.write(0, 3, '学位授予年度')
sheet.write(0, 4, '下载频次')
sheet.write(0, 5, '引用频次')
begin = 6
while begin < 18:
sheet.write(0, b