1、目的:
朋友找我去知网帮他下载点相关论文,发现老是要去点击文章。点击下载,显得很麻烦,百度一下,别人的方法太复杂,所以自己写了一个python脚本自动下载知网论文。
2、前期准备
1)安装python 2.7
2)安装 selenium
pip install selenium
3)下载一个chromedriver.exe,放到脚本同一个文件夹内
4)安装chrome浏览器
3、直接撸代码
(a)指定关键字下载知网论文
downloadCNKI.py
#!/usr/bin/env Python
# coding=utf-8
import os
from time import sleep
from selenium import webdriver
def browser_init(isWait):
options = webdriver.ChromeOptions()
prefs = {
'profile.default_content_settings.popups': 0, 'download.default_directory': 'E:\\PycharmProjects\\downloadCNKI\\output'}
options.add_experimental_option('prefs', prefs)
browser = webdriver.Chrome(executable_path='chromedriver.exe', chrome_options=options)
browser.set_window_size(500,500)
if isWait:
browser.implicitly_wait(50)
return browser
def searchKey(keyword):
browser.get("http://kns.cnki.net/kns/brief/default_result.aspx")
browser.find_element_by_id('txt_1_value1').send_keys(keyword)
browser.find_element_by_id('btnSearch').click()
def switchToFrame(browser):
#print 'start switch'
browser.switch_to.frame('iframeResult')
#print 'end switch'
def getDownloadLinks(browser,paper_downloadLinks):
for link in browser.find_elements_by_css_selector('a[href^=\/kns\/detail]'):
#link.click()
url=link.get_attribute('href')
url_part = url.split('&')[3:6]
url_str= '&'.join(url_part)
down_url=