搜索出来的结果和知网上的结果几乎一样,另外以后面试找Python工作,项目经验展示是核心,如果你缺项目练习,去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面很多新教程项目

在这个基础上,我简单看了些网页的结构,很容易就能写出爬取得代码(是最基础的,相当不完善,增加其他功能可自行增加)

网页的结构还是很清晰的

摘要信息也很清晰

我使用的是 pymysql 连接的数据库,效率也还可以

下面直接贴代码:

# -*- coding: utf-8 -*-

import time

import re

import random

import requests

from bs4 import BeautifulSoup

import pymysql

connection = pymysql.connect(host='',

user='',

password='',

db='',

port=3306,

charset='utf8') # 注意是utf8不是utf-8

# 获取游标

cursor = connection.cursor()

#url = 'http://epub.cnki.net/grid2008/brief/detailj.aspx?filename=RLGY201806014&dbname=CJFDLAST2018'

#这个headers信息必须包含,否则该网站会将你的请求重定向到其它页面

headers = {

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

'Accept-Encoding':'gzip, deflate, sdch',

'Accept-Language':'zh-CN,zh;q=0.8',

'Connection':'keep-alive',

'Host':'www.cnki.net',

'Referer':'http://search.cnki.net/search.aspx?q=%E4%BD%9C%E8%80%85%E5%8D%95%E4%BD%8D%3a%E6%AD%A6%E6%B1%89%E5%A4%A7%E5%AD%A6&rank=relevant&cluster=zyk&val=CDFDTOTAL',

'Upgrade-Insecure-Requests':'1',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'

}

headers1 = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'

}

def get_url_list(start_url):

depth = 20

url_list = []

for i in range(depth):

try:

url = start_url + "&p=" + str(i * 15)

search = requests.get(url.replace('\n', ''), headers=headers1)

soup = BeautifulSoup(search.text, 'html.parser')

for art in soup.find_all('div', class_='wz_tab'):

print(art.find('a')['href'])

if art.find('a')['href'] not in url_list:

url_list.append(art.find('a')['href'])

print("爬取第" + str(i) + "页成功!")

time.sleep(random.randint(1, 3))

except:

print("爬取第" + str(i) + "页失败!")

return url_list

def get_data(url_list, wordType):

try:

# 通过url_results.txt读取链接进行访问

for url in url_list:

i = 1;

if url == pymysql.NULL or url == '':

continue

try:

html = requests.get(url.replace('\n', ''), headers=headers)

soup = BeautifulSoup(html.text, 'html.parser')

except:

print("获取网页失败")

try:

print(url)

if soup is None:

continue

# 获取标题

title = soup.find('title').get_text().split('-')[0]

# 获取作者

author = ''

for a in soup.find('div', class_='summary pad10').find('p').find_all('a', class_='KnowledgeNetLink'):

author += (a.get_text() + ' ')

# 获取摘要

abstract = soup.find('span', id='ChDivSummary').get_text()

# 获取关键词,存在没有关键词的情况

except:

print("部分获取失败")

pass

try:

key = ''

for k in soup.find('span', id='ChDivKeyWord').find_all('a', class_='KnowledgeNetLink'):

key += (k.get_text() + ' ')

except:

pass

print("第" + str(i) + "个url")

print("【Title】:" + title)

print("【author】:" + author)

print("【abstract】:" + abstract)

print("【key】:" + key)

# 执行SQL语句

cursor.execute('INSERT INTO cnki VALUES (NULL, %s, %s, %s, %s, %s)', (wordType, title, author, abstract, key))

# 提交到数据库执行

connection.commit()

print()

print("爬取完毕")

finally:

print()

if __name__ == '__main__':

try:

for wordType in {"大肠杆菌", "菌群总落", "胭脂红", "日落黄"}:

wordType = "肉+" + wordType

start_url = "http://search.cnki.net/search.aspx?q=%s&rank=relevant&cluster=zyk&val=" % wordType

url_list = get_url_list(start_url)

print("开始爬取")

get_data(url_list, wordType)

print("一种类型爬取完毕")

print("全部爬取完毕")

finally:

connection.close()

在这里的关键词我简单的选了几个,作为实验,如果爬取的很多,可以写在txt文件里,直接读取就可以,非常方便。

python爬知网全文期刊数据库_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...相关推荐

  1. python爬取知网论文关键词_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...

    搜索出来的结果和知网上的结果几乎一样,另外以后面试找Python工作,项目经验展示是核心,如果你缺项目练习,去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面很多新 ...

  2. python爬虫论文摘要怎么写_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中【入门必学】...

    搜索出来的结果和知网上的结果几乎一样,另外以后面试找Python工作,项目经验展示是核心,如果你缺项目练习,去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面很多新 ...

  3. python 依据某几列累加求和_Python爬虫笔记:爬取单个页面

    前言 学习Python爬虫技术也是一件需要大量实践的事情,因为并不是所有的网站都对爬虫友好,更多的一种情况是网站为了限制爬虫不得不在最小化影响用户体验的前提下对网站访问做出一定的限制,最常见的就是一些 ...

  4. 如何通过中国知网获取期刊封面及目录页

    笔者前不久接到一个求助,希望提供某期刊某期的封面及目录页信息,该刊有其发表的论文,现急需.所在馆2012年期刊已经下架打捆(尚未送出装订),无功而返.笔者另行求助,得到中国知网产品经理吕蜜女士的帮助. ...

  5. WIN10系统在中国知网下载期刊封面、扉页、目录的PDF版本

    WIN10系统在中国知网下载期刊封面.扉页.目录的PDF版本 ie浏览器检索 打印机设置 输出PDF ie浏览器检索 使用ie浏览器打开中国知网,找到需要下载的期刊: 中国知网期刊检索 检索到需要下载 ...

  6. 知网CN期刊《才智》简介及投稿邮箱

    <才智>杂志成立于2001年,隶属吉林省人事厅,是经国家新闻出版总署批准的,吉林省人事系统唯一一本面向全国公开发行的杂志.是一本专业发表各类论文评定职称的省级理论性杂志.以挖掘各行各业拔尖 ...

  7. Java 知网博硕论文信息爬虫

    知网博硕论文信息爬虫 声明 代码 首先声明这段代码,是我刚毕业进公司写的,整个爬虫系统我还没写完,就被调去学python支援公司的某个项目去了,所以代码距离我写文章时候,其实已经过去了大半年有余了,代 ...

  8. Python爬虫实战六之抓取爱问知识人问题并保存至数据库

    大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...

  9. 通过Python爬虫按关键词抓取相关的新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途 如今各大网站的反爬机制已经可以说是到了丧心病狂的程度,比如大众点评的字符加密.微博的登录验证等.相比较而言,新闻网站的反爬机制 ...

最新文章

  1. spring框架实现一个学生管理系统
  2. Android WebView获取网页中JavaScript弹框内容
  3. eclipse鼠标变十了_Eclipse在过去十年中的主要成就
  4. JavaScript里面的居民们1-数据
  5. DEV控件中GridView中的复选框与CheckBox实现联动的全选功能
  6. android版本如何修改时间,如何修改Android系统默认时间
  7. truncate 、delete与drop区别
  8. Git上传项目到github
  9. BCB中与路径文件名相关的几个函数!
  10. 两道图片隐写的CTF题
  11. Java架构师面试十大连环炮
  12. java代码防查重工具_代码查重工具sim
  13. ECMAScript 是什么?
  14. 英语——长难句分析及技巧
  15. 计算机网络ip地址划分方法,ip地址怎么划分 ip地址划分方法【图文】
  16. 电路设计中电容的常见作用
  17. jQuery weui Select组件显示指定值
  18. 苹果id退出后数据还在吗_答疑你的手机连接WiFi后,会关闭移动数据吗?
  19. 我用scratch做了个二分查找
  20. 关于c3p0连接池使用xml配置出现的一些错误

热门文章

  1. Python win32api.keybd_event模拟键盘输入
  2. SSH中的ssh-keygen常用方法
  3. 2021年南京大学计算机科学与技术学院考研指南
  4. rbw设计_Rajintek EOS 360 RBW AIO带来ARGB独特的模块设计
  5. 通达信接口的单账户批量函数
  6. 华为被《麻省理工科技评论》评为全球“50家最聪明的公司”
  7. python开发的著名网站_python开发排名
  8. 阿里云服务器代金券领取方法
  9. 未来不带任何东西就能支付 欧洲已采用指纹支付
  10. 监测Squid日志的五种方法