Python爬取CNKI论文信息

Python爬取CNKI论文信息

记第一次爬虫实践,拜读了几篇高质量的文章后,自己动手写点东西。
使用Python爬取关键词下的论文信息:标题、链接地址、摘要、出版单位、论文类型、出版年份、下载次数、引用次数。以上信息存放在Excel表格中。
笔者使用的链接的接口是:知识搜索 http://search.cnki.net/SearchFruitless.aspx
网上给出的其他接口有:远见搜索—站得更高,看得更远! http://yuanjian.cnki.com.cn/
Python爬取CNKI论文信息_第1张图片
具体代码如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*- 
import requests
from bs4 import BeautifulSoup
from openpyxl import workbook  # 写入Excel表所用
#from openpyxl import load_workbook  # 读取Excel表所用


if __name__=="__main__":
    #  创建Excel表并写入数据
    ws = []  # 全局工作表对象
    wb = workbook.Workbook()  # 创建Excel对象
    ws = wb.active  # 获取当前正在操作的表对象
    ws.append(['标题名', '链接地址', '摘要', '单位—类型—年份—下载次数-被引次数'])     # 往表中写入标题行,以列表形式写入!


    keywords='移动通信' ### 查询的主题 ,引号内容根据需要修改
    target='http://search.cnki.net/search.aspx?q='+str(keywords)+'&rank=relevant&cluster=all&val=CJFDTOTAL&p={}'
    user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'
    headers = {
     'User-Agent':user_agent}
    for i in range(10):
        i=i*15 #每页有15篇论文
        target=target.format(i) #翻页,是在p={}中修改页数链接
        req=requests.get(url=target)
        html=req.text
        html=html.replace('
'
,' ').replace('
'
,' ').replace('/>','>') bf=BeautifulSoup(html,"html.parser") texts=bf.find('div',class_='articles')#查看页面对应的审查元素,标签为articles texts_div=texts.find_all('div',class_='wz_content')#查看页面对应的审查元素,标签为wz_content for item in texts_div: item_name=item.find('a').text #标题 item_href=item.find('a')['href']#链接网址 item_abstract = item.find('span', class_='text').text#摘要 item_refer = item.find('span', class_='year-count').text#发表单位、发表类型、发表年份、下载次数_引用次数 #print('{} {} {} {}\n'.format(item_name,item_href,item_refer3,item_refer2))测试能否正常输出 ws.append([item_name,item_href,item_abstract,item_refer]) #向表格中添加需要的信息 wb.save('mobile_communication_paper.xlsx') print("已完成")

输出结果如下图所示:
Python爬取CNKI论文信息_第2张图片

你可能感兴趣的:(Python爬虫,Python,爬虫)