1. 程式人生 > >python 爬取知網url

python 爬取知網url

由於知網存在非同步載入,爬取需要獲得queryid,cookies等

程式碼如下:

#coding:utf-8
'''
Created on 2016-8-15

@author: 劉帥
'''
import urllib2
from bs4 import BeautifulSoup
import socket
import httplib

urls = []
class Spider3(object):

    def __init__(self, url):
        self.url = url

    def getInfo(self):
        titles = []
        alltime = []
        positions = []
        hdr = {

               'Referer'
:'http://epub.cnki.net/kns/brief/brief.aspx?curpage=1&RecordsPerPage=20&QueryID=414&ID=&turnpage=1&tpagemode=L&dbPrefix=CJFQ&Fields=&DisplayMode=listmode&PageName=ASP.brief_result_aspx#J_ORDER', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'
, 'Host':'kc.cnki.net', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', #'Accept-Encoding': 'gzip', 'deflate' 'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3', 'Connection'
: 'keep-alive', 'Request-Line':'http://epub.cnki.net/kns/brief/brief.aspx?curpage=1&RecordsPerPage=20&QueryID=414&ID=&turnpage=1&tpagemode=L&dbPrefix=CJFQ&Fields=&DisplayMode=listmode&PageName=ASP.brief_result_aspx#J_ORDER', #'Cookie':'SID=201105' 'Cookie':'Ecp_ClientId=1160610122903551177; kc_cnki_net_uid=af1af3ce-6313-a666-581e-d71f49479538; RsPerPage=20; ASP.NET_SessionId=d0olsbgo3d0v3kyukigkysl0; Ecp_IpLoginFail=161219118.122.91.183' } request = urllib2.Request(self.url,headers=hdr) page = urllib2.urlopen(request) data = page.read() #print data #request.add_header(hdr) try: html = urllib2.urlopen(request) #print html except socket.timeout, e: pass except urllib2.URLError,ee: pass except httplib.BadStatusLine: pass soup = BeautifulSoup(html,'html.parser') #print soup for link in soup.find_all('a',{'class': 'fz14'}): url = link.get('href').replace('/kns','http://www.cnki.net/KCMS') print(url) urls.append(link.get('href')) #print time #time = time_position.split(u'舉')[0] #position = time_position.split(u'舉')[1] #print position return urls for i in range(10,13): #print i url = "http://epub.cnki.net/kns/brief/brief.aspx?curpage=" + str(i) + "&RecordsPerPage=20&QueryID=414&ID=&turnpage=1&tpagemode=L&dbPrefix=CJFQ&Fields=&DisplayMode=listmode&PageName=ASP.brief_result_aspx#J_ORDER" #url2 = "http://www.cnena.com/huiyi/list-htm-fid-5-page-" + str(i) + ".html" #print url s = Spider3(url) urls = s.getInfo() #urls.extend(url) print urls

結果如下:

http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=181&DbCode=CJFQ&dbname=CJFDLAST2015&filename=NZYX201505025&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=182&DbCode=CJFQ&dbname=CJFDLAST2015&filename=DWSL201505009&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=183&DbCode=CJFQ&dbname=CJFDLAST2015&filename=CITP201511018&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=184&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201402066&urlid=11.5639.O4.20131220.0034.025&yx=Y
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=185&DbCode=CJFQ&dbname=CJFD2014&filename=KNWL201402008&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=186&DbCode=CJFQ&dbname=CJFD2014&filename=WLXB201401029&urlid=11.1958.O4.20131122.1031.016&yx=Y
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=187&DbCode=CJFQ&dbname=CJFD2014&filename=YSXS201401019&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=188&DbCode=CJFQ&dbname=CJFD2014&filename=KJDK201402023&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=189&DbCode=CJFQ&dbname=CJFD2014&filename=WLXB201405030&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=190&DbCode=CJFQ&dbname=CJFD2014&filename=SXJZ201402001&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=191&DbCode=CJFQ&dbname=CJFD2014&filename=SXSZ201401007&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=192&DbCode=CJFQ&dbname=CJFD2014&filename=HJBY201401004&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=193&DbCode=CJFQ&dbname=CJFD2014&filename=JEXK201404011&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=194&DbCode=CJFQ&dbname=CJFD2014&filename=DXWL201401013&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=195&DbCode=CJFQ&dbname=CJFD2014&filename=DXWL201401014&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=196&DbCode=CJFQ&dbname=CJFD2014&filename=DXWL201402003&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=197&DbCode=CJFQ&dbname=CJFD2014&filename=YZYF201401020&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=198&DbCode=CJFQ&dbname=CJFD2014&filename=YZYF201402025&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=199&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201403078&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=200&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201404065&urlid=046201&yx=Y
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=201&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201405018&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=202&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201405063&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=203&DbCode=CJFQ&dbname=CJFD2014&filename=JGXG201407010&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=204&DbCode=CJFQ&dbname=CJFD2014&filename=JGXK201402002&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=205&DbCode=CJFQ&dbname=CJFD2014&filename=JYDB201402007&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=206&DbCode=CJFQ&dbname=CJFD2014&filename=JXTW201416014&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=207&DbCode=CJFQ&dbname=CJFD2014&filename=DXSZ201402009&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=208&DbCode=CJFQ&dbname=CJFD2014&filename=GKWL201401015&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=209&DbCode=CJFQ&dbname=CJFD2014&filename=CGCZ201401022&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=210&DbCode=CJFQ&dbname=CJFD2014&filename=MYSF201402006&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=211&DbCode=CJFQ&dbname=CJFD2014&filename=NJYD201401026&urlid=32.1772.TN.20140313.1125.023&yx=Y
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=212&DbCode=CJFQ&dbname=CJFD2014&filename=QJGY201403055&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=213&DbCode=CJFQ&dbname=CJFD2014&filename=SCDX201402019&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=214&DbCode=CJFQ&dbname=CJFD2014&filename=WLXB201408022&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=215&DbCode=CJFQ&dbname=CJFD2014&filename=JXTW201421004&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=216&DbCode=CJFQ&dbname=CJFD2014&filename=SHHG201403004&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=217&DbCode=CJFQ&dbname=CJFD2014&filename=WLXB201410004&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=218&DbCode=CJFQ&dbname=CJFD2014&filename=WLZZ201405013&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=219&DbCode=CJFQ&dbname=CJFD2014&filename=QYKX201401007&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=220&DbCode=CJFQ&dbname=CJFD2014&filename=DXHX201402016&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=221&DbCode=CJFQ&dbname=CJFD2014&filename=GYWL201402017&urlid=10.11858/gywlxb.2014.02.015&yx=Y
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=222&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201406106&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=223&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201407004&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=224&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201407009&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=225&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201407010&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=226&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201407014&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=227&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201407015&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=228&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201407016&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=229&DbCode=CJFQ&dbname=CJFD2014&filename=ZGWL201407061&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=230&DbCode=CJFQ&dbname=CJFD2014&filename=XDZK201403007&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=231&DbCode=CJFQ&dbname=CJFD2014&filename=XBKJ201405042&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=232&DbCode=CJFQ&dbname=CJFD2014&filename=YYKJ201402012&urlid=10.3969/j.issn.1009-671X.201306006&yx=Y
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=233&DbCode=CJFQ&dbname=CJFD2014&filename=KSGB201403013&urlid=&yx=
http://www.cnki.net/KCMS/detail/detail.aspx?QueryID=0&CurRec=234&DbCode=CJFQ&dbname=CJFD2014&filename=JGXG201408018&urlid=&yx=