资源简介
这是一个爬取知网的社科基金项目的代码,用python语言写的,这个代码参考了其他人写的代码。最终能够实现爬取社科基金项目信息的功能,在pycharm3.6下开发,需要替换成你自己的浏览器的cookie。
代码片段和文件信息
#web_url = ‘http://kns.cnki.net/kns/detail/detail.aspx?QueryID=0&CurRec=2&DbCode= CJFD&dbname=CJFDTEMP&filename=BJZY201812008&urlid=&yx=‘
import requests # 导入requests 模块
import re
import time
import xlwt #导入模块
def request(url): # 返回网页的response
# print(url)
# 这里是伪造浏览器信息,和伪造来源
user_agent = ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Ch‘ \
‘rome/58.0.3029.81 Safari/537.36‘
referer = “http://kns.cnki.net/kns/brief/result.aspx?dbprefix=CJFQ“
# 这里是伪造cookie,你要从浏览器里复制出来,粘贴在这里
# 可以把里面的时间不断更新,这样能爬久一点
cookie = ‘RsPerPage=20; cnkiUserKey=9fc101c4-bc14-27ea-5eb4-f8282ca1742c; UM_distinctid=16527e5f405230-044bded10d4527-4947311e-1fa400-16527e5f4069ff; Ecp_ClientId=5180811152900249267; ASP.NET_SessionId=hbqqazmw3um3z1onutsbxb0d; SID_kns=011116; SID=011108; Ecp_session=1; LID=WEEvREcwSlJHSldRa1FhcEE0RVVzNVhyZTRSWTFraVRHOTdsUDN0bU9NWT0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4IQMovwHtwkF4VYPoHbKxJw!!; _pk_ref=%5B%22%22%2C%22%22%2C1545744171%2C%22http%3A%2F%2Fwww.cnki.net%2F%22%5D; KNS_SortType=; _pk_ses=*‘
headers = {‘User-Agent‘: user_agent
“Referer“: referer
“cookie“: cookie}
r = requests.get(url headers=headers timeout=30)
return r
wb = xlwt.Workbook()
sh = wb.add_sheet(“2003测试表“)
sh.write(0 0 ‘序号‘)
sh.write(0 1 ‘题名‘)
sh.write(0 2 ‘作者‘)
sh.write(0 3 ‘单位‘)
sh.write(0 4 ‘文献来源‘)
sh.write(0 5 ‘关键词‘)
sh.write(0 6 ‘摘要‘)
sh.write(0 7 ‘年份‘)
sh.write(0 8 ‘页码‘)
countItem = 1
told = 0
p = 1 # 这里是页数
for num in range(p p + 20):
# 这里的num是页码
web_url = ‘http://nvsm.cnki.net/kns/brief/brief.aspx?curpage=%s&Records‘ \
‘PerPage=20&QueryID=0&ID=&turnpage=1&tpagemode=L&dbPref‘ \
‘ix=CJFQ&Fields=&DisplayMode=listmode&PageName=ASP.brief_‘ \
‘result_aspx&isinEn=1‘ % num # 这里的URL实现了二次加载
print(‘搜素页的URL=‘ web_url)
# 这里开始是时间控制
t = int(time.clock())
print(t / 60 ‘分钟‘)
useTime = t - told
# 如果一个周期的时间使用太短,则等待一段时间
# 主要用于防止被禁
if (useTime < 120 and useTime > 10):
print(“useTime=%s“ % useTime)
whiteTime = 120 - useTime
print(“等待%s秒“ % whiteTime)
time.sleep(whiteTime)
told = int(time.clock())
print(t)
print(‘开始网页get请求‘)
r = request(web_url) #
#print(r.text)
# 这里是报错的解释,能知道到底是因为什么不能继续爬了
# 一开始会看爬到的源代码,但是之后正式开始爬的时候,打印页面源代码会拉低爬虫效率
yan = re.search(r‘参数错误‘ r.text)
if yan != None:
print(“参数“)
break
yan = re.search(r‘验证码‘ r.text)
if yan != None:
print(“验证“)
break
countHtml = re.findall(r‘tle“ name=“lbPagertitle“ class=“pagertitle“> ([.$\s\S]*?)
print(re.findall(“\d+“ countHtml[0]))
countItem = int(re.findall(“\d+“ countHtml[0]))
#这里开始抓列表里每一个文献的url
#soup = re.findall(r‘
soup = re.findall(r‘<
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论