在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  C#/ 知網(wǎng)文章列表爬蟲,沒有此用戶

知網(wǎng)文章列表爬蟲,沒有此用戶

import requests
import time
from urllib.parse import urlencode
url='http://nvsm.cnki.net/kns/brief/brief.aspx?'
parameter={
    "pagename":"ASP.brief_default_result_aspx",
    "isinEn":"1",
    "dbPrefix":"SCDB",
    "dbCatalog":"中國學(xué)術(shù)文獻(xiàn)網(wǎng)絡(luò)出版總庫",
    "ConfigFile":"SCDBINDEX.xml",
    "research":"off",
    "t":int(time.time()),
    "keyValue":"氯化1_甲基_3_丁基咪唑的制備與表征",
    "S":"1",
    "sorttype":"(FFD,'RANK') desc",
}
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",
    # "Cookie":'ASP.NET_SessionId=2151wunql2icog3s3msaizu2; SID_kns=011101; SID=011101; KNS_SortType=SCDB%21%28FFD%252c%2527RANK%2527%29+desc;',
    "Host":"nvsm.cnki.net",
    "Referer":"http://nvsm.cnki.net/kns/brief/default_result.aspx",
    "Upgrade-Insecure-Requests":"1",
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
}
s=requests.Session()
aa=s.get('http://nvsm.cnki.net/kns/brief/default_result.aspx',headers=headers)
print(aa.cookies.keys())
search=s.get(url+urlencode(parameter),headers=headers)
print(search.text.find('沈陽'))

我把電腦瀏覽器里面的cookie放到headers里面,就可以獲得結(jié)果,主要需要ASP.NET_SessionId=2151wunql2icog3s3msaizu2; SID_kns=011101。把headers里面的cookie注釋了,然后用requests.session訪問,通過打印cookie發(fā)現(xiàn)ASP.NET_SessionId是有的,但是返回的頁面結(jié)果是沒有此用戶什么的,除了手動(dòng)復(fù)制cookie,有什么辦法能用request獲取結(jié)果呢

回答
編輯回答
傻叼

python不熟,難道urllib不能自己維護(hù)cookie嗎?這應(yīng)該是http庫的基本功能之一,你文檔里找找吧

2017年6月6日 10:08
編輯回答
淺時(shí)光

用session訪問http://nvsm.cnki.net/kns/requ...
而不是http://nvsm.cnki.net/kns/brie...
就可以了
關(guān)于session的情況可以參考一下樓下朋友說的,很透徹

2017年9月13日 12:46