Python爬虫知网

本文介绍了使用Python进行知网爬虫的简单实践,通过少量代码实现数据抓取。
摘要由CSDN通过智能技术生成

听说Python爬虫知网很火,我今天就做一个。
上代码:

import requests 
import re
import time
import xlrd
from xlrd import open_workbook
from xlutils.copy import copy

class BeautifulPicture():
    def get_pic(self):
        data = xlrd.open_workbook(r'C:\\flim\library_my\new.xls')  # 打开xls文件,自己新建这个文件在运行路径,不然不行的哦
        table = data.sheets()[0]  # 打开第一张表
        table2 = data.sheets()[1]  # 打开第一张表
        i = table.nrows #上一次爬到的表1的行数
        i1 = 0
        i2 = table2.nrows #上一次爬到的表2的行数
        told = 0
        rb = open_workbook(r'C:\\flim\library_my\new.xls','utf-8')
        wb = copy(rb) # 将上一次爬到的复制到新表里,并在新表里继续添加纪录
        # 通过get_sheet()获取的sheet有write()方法
        ws = wb.get_sheet(0)
        ws1 = wb.get_sheet(1)
        p = 1  # 这里是页数
        for num in range(p, p + 100):
            # 这里的num是页码
            web_url ='http://kns.cnki.net/kns/brief/brief.aspx?curpage=%s&Reco' \
                     'rdsPerPage=50&QueryID=8&ID=&turnpage=1&tpagemode=L&dbPref' \
                     'ix=SCDB&Fields=&DisplayMode=listmode&PageName=ASP.brief_' \
                     'default_result_aspx#J_ORDER&' % 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 = self.request(web_url
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值