摘要:百度云搜索,搜各種資料搜網(wǎng)盤,搜各種資料模擬瀏覽器登錄方法,可以返回一個(gè)請(qǐng)求給爬蟲的起始網(wǎng)站,這個(gè)返回的請(qǐng)求相當(dāng)于,返回的請(qǐng)求會(huì)替代里的請(qǐng)求請(qǐng)求,可以設(shè)置,回調(diào)函數(shù)表單提交,第一個(gè)必須參數(shù),上一次響應(yīng)的對(duì)象,其他參數(shù),表單內(nèi)容等可以將一個(gè)新
模擬瀏覽器登錄
start_requests()方法,可以返回一個(gè)請(qǐng)求給爬蟲的起始網(wǎng)站,這個(gè)返回的請(qǐng)求相當(dāng)于start_urls,start_requests()返回的請(qǐng)求會(huì)替代start_urls里的請(qǐng)求
Request()get請(qǐng)求,可以設(shè)置,url、cookie、回調(diào)函數(shù)
FormRequest.from_response()表單post提交,第一個(gè)必須參數(shù),上一次響應(yīng)cookie的response對(duì)象,其他參數(shù),cookie、url、表單內(nèi)容等
yield Request()可以將一個(gè)新的請(qǐng)求返回給爬蟲執(zhí)行
在發(fā)送請(qǐng)求時(shí)cookie的操作,
meta={"cookiejar":1}表示開啟cookie記錄,首次請(qǐng)求時(shí)寫在Request()里
meta={"cookiejar":response.meta["cookiejar"]}表示使用上一次response的cookie,寫在FormRequest.from_response()里post授權(quán)
meta={"cookiejar":True}表示使用授權(quán)后的cookie訪問需要登錄查看的頁面
獲取Scrapy框架Cookies
請(qǐng)求Cookie
Cookie = response.request.headers.getlist("Cookie")
print(Cookie)
響應(yīng)Cookie
Cookie2 = response.headers.getlist("Set-Cookie")
print(Cookie2)
#?-*-?coding:?utf-8?-*- import?scrapy from?scrapy.http?import?Request,FormRequest class?PachSpider(scrapy.Spider):????????????????????????????#定義爬蟲類,必須繼承scrapy.Spider ????name?=?"pach"???????????????????????????????????????????#設(shè)置爬蟲名稱 ????allowed_domains?=?["edu.iqianyue.com"]??????????????????#爬取域名 ????#?start_urls?=?["http://edu.iqianyue.com/index_user_login.html"]?????#爬取網(wǎng)址,只適于不需要登錄的請(qǐng)求,因?yàn)闆]法設(shè)置cookie等信息 ????header?=?{"User-Agent":"Mozilla/5.0?(Windows?NT?10.0;?WOW64;?rv:54.0)?Gecko/20100101?Firefox/54.0"}??#設(shè)置瀏覽器用戶代理 ????def?start_requests(self):???????#用start_requests()方法,代替start_urls ????????"""第一次請(qǐng)求一下登錄頁面,設(shè)置開啟cookie使其得到cookie,設(shè)置回調(diào)函數(shù)""" ????????return?[Request("http://edu.iqianyue.com/index_user_login.html",meta={"cookiejar":1},callback=self.parse)] ????def?parse(self,?response):?????#parse回調(diào)函數(shù) ????????data?=?{????????????????????#設(shè)置用戶登錄信息,對(duì)應(yīng)抓包得到字段 ????????????"number":"adc8868", ????????????"passwd":"279819", ????????????"submit":"" ????????????} ????????#?響應(yīng)Cookie ????????Cookie1?=?response.headers.getlist("Set-Cookie")???#查看一下響應(yīng)Cookie,也就是第一次訪問注冊(cè)頁面時(shí)后臺(tái)寫入瀏覽器的Cookie ????????print(Cookie1) ????????print("登錄中") ????????"""第二次用表單post請(qǐng)求,攜帶Cookie、瀏覽器代理、用戶登錄信息,進(jìn)行登錄給Cookie授權(quán)""" ????????return?[FormRequest.from_response(response, ??????????????????????????????????????????url="http://edu.iqianyue.com/index_user_login",???#真實(shí)post地址 ??????????????????????????????????????????meta={"cookiejar":response.meta["cookiejar"]}, ??????????????????????????????????????????headers=self.header, ??????????????????????????????????????????formdata=data, ??????????????????????????????????????????callback=self.next, ??????????????????????????????????????????)] ????def?next(self,response): ????????a?=?response.body.decode("utf-8")???#登錄后可以查看一下登錄響應(yīng)信息 ????????#?print(a) ????????"""登錄后請(qǐng)求需要登錄才能查看的頁面,如個(gè)人中心,攜帶授權(quán)后的Cookie請(qǐng)求""" ????????yield?Request("http://edu.iqianyue.com/index_user_index.html",meta={"cookiejar":True},callback=self.next2) ????def?next2(self,response): ????????#?請(qǐng)求Cookie ????????Cookie2?=?response.request.headers.getlist("Cookie") ????????print(Cookie2) ????????body?=?response.body??#?獲取網(wǎng)頁內(nèi)容字節(jié)類型 ????????unicode_body?=?response.body_as_unicode()??#?獲取網(wǎng)站內(nèi)容字符串類型 ????????a?=?response.xpath("/html/head/title/text()").extract()??#得到個(gè)人中心頁面 ????????print(a)
模擬瀏覽器登錄2
第一步、
爬蟲的第一次訪問,一般用戶登錄時(shí),第一次訪問登錄頁面時(shí),后臺(tái)會(huì)自動(dòng)寫入一個(gè)Cookies到瀏覽器,所以我們的第一次主要是獲取到響應(yīng)Cookies
首先訪問網(wǎng)站的登錄頁面,如果登錄頁面是一個(gè)獨(dú)立的頁面,我們的爬蟲第一次應(yīng)該從登錄頁面開始,如果登錄頁面不是獨(dú)立的頁面如 js 彈窗,那么我們的爬蟲可以從首頁開始
#?-*-?coding:?utf-8?-*- import?scrapy from?scrapy.http?import?Request,FormRequest import?re class?PachSpider(scrapy.Spider):????????????????????????????#定義爬蟲類,必須繼承scrapy.Spider ????name?=?"pach"???????????????????????????????????????????#設(shè)置爬蟲名稱 ????allowed_domains?=?["dig.chouti.com"]????????????????????#爬取域名 ????#?start_urls?=?[""]?????????????????????????????????????#爬取網(wǎng)址,只適于不需要登錄的請(qǐng)求,因?yàn)闆]法設(shè)置cookie等信息 ????header?=?{"User-Agent":"Mozilla/5.0?(Windows?NT?10.0;?WOW64;?rv:54.0)?Gecko/20100101?Firefox/54.0"}??#設(shè)置瀏覽器用戶代理 ????def?start_requests(self): ????????"""第一次請(qǐng)求一下登錄頁面,設(shè)置開啟cookie使其得到cookie,設(shè)置回調(diào)函數(shù)""" ????????return?[Request("http://dig.chouti.com/",meta={"cookiejar":1},callback=self.parse)] ????def?parse(self,?response): ????????#?響應(yīng)Cookies ????????Cookie1?=?response.headers.getlist("Set-Cookie")????????????????????????????#查看一下響應(yīng)Cookie,也就是第一次訪問注冊(cè)頁面時(shí)后臺(tái)寫入瀏覽器的Cookie ????????print("后臺(tái)首次寫入的響應(yīng)Cookies:",Cookie1) ????????data?=?{????????????????????????????????????????????????????????????????????#?設(shè)置用戶登錄信息,對(duì)應(yīng)抓包得到字段 ????????????"phone":?"8615284816568", ????????????"password":?"279819", ????????????"oneMonth":?"1" ????????} ????????print("登錄中....!") ????????"""第二次用表單post請(qǐng)求,攜帶Cookie、瀏覽器代理、用戶登錄信息,進(jìn)行登錄給Cookie授權(quán)""" ????????return?[FormRequest.from_response(response, ??????????????????????????????????????????url="http://dig.chouti.com/login",????????????????????????#真實(shí)post地址 ??????????????????????????????????????????meta={"cookiejar":response.meta["cookiejar"]}, ??????????????????????????????????????????headers=self.header, ??????????????????????????????????????????formdata=data, ??????????????????????????????????????????callback=self.next, ??????????????????????????????????????????)] ????def?next(self,response): ????????#?請(qǐng)求Cookie ????????Cookie2?=?response.request.headers.getlist("Cookie") ????????print("登錄時(shí)攜帶請(qǐng)求的Cookies:",Cookie2) ????????jieg?=?response.body.decode("utf-8")???#登錄后可以查看一下登錄響應(yīng)信息 ????????print("登錄響應(yīng)結(jié)果:",jieg) ????????print("正在請(qǐng)需要登錄才可以訪問的頁面....!") ????????"""登錄后請(qǐng)求需要登錄才能查看的頁面,如個(gè)人中心,攜帶授權(quán)后的Cookie請(qǐng)求""" ????????yield?Request("http://dig.chouti.com/user/link/saved/1",meta={"cookiejar":True},callback=self.next2) ????def?next2(self,response): ????????#?請(qǐng)求Cookie ????????Cookie3?=?response.request.headers.getlist("Cookie") ????????print("查看需要登錄才可以訪問的頁面攜帶Cookies:",Cookie3) ????????leir?=?response.xpath("http://div[@class="tu"]/a/text()").extract()??#得到個(gè)人中心頁面 ????????print("最終內(nèi)容",leir) ????????leir2?=?response.xpath("http://div[@class="set-tags"]/a/text()").extract()??#?得到個(gè)人中心頁面 ????????print(leir2)
【轉(zhuǎn)載自:http://www.lqkweb.com】
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/45076.html
摘要:登錄開發(fā)者后臺(tái)我的軟件獲得軟件軟件密鑰注意這里是普通會(huì)員賬號(hào),不是開發(fā)者賬號(hào),注冊(cè)地址開發(fā)者可以聯(lián)系客服領(lǐng)取免費(fèi)調(diào)試題分請(qǐng)先設(shè)置用戶名密碼一鍵識(shí)別函數(shù)正在一鍵識(shí)別例表示位字母數(shù)字,不同類型收費(fèi)不同。請(qǐng)準(zhǔn)確填寫,否則影響識(shí)別率。 【百度云搜索:http://www.bdyss.cn】 【搜網(wǎng)盤:http://www.swpan.cn】 打碼接口文件 # -*- coding: cp936...
摘要:負(fù)責(zé)處理被提取出來的。典型的處理有清理驗(yàn)證及持久化例如存取到數(shù)據(jù)庫知識(shí)庫項(xiàng)目的設(shè)置文件實(shí)現(xiàn)自定義爬蟲的目錄中間件是在引擎及之間的特定鉤子,處理的輸入和輸出及。 【百度云搜索:http://www.bdyss.com】 【搜網(wǎng)盤:http://www.swpan.cn】 Scrapy框架安裝 1、首先,終端執(zhí)行命令升級(jí)pip: python -m pip install --upgrad...
摘要:什么是爬蟲網(wǎng)絡(luò)爬蟲也叫網(wǎng)絡(luò)蜘蛛,是一種自動(dòng)化瀏覽網(wǎng)絡(luò)的程序,或者說是一種網(wǎng)絡(luò)機(jī)器人。 什么是爬蟲 網(wǎng)絡(luò)爬蟲也叫網(wǎng)絡(luò)蜘蛛,是一種自動(dòng)化瀏覽網(wǎng)絡(luò)的程序,或者說是一種網(wǎng)絡(luò)機(jī)器人。它們被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)站,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。它們可以自動(dòng)采集所有其能夠訪問到的頁面內(nèi)容,以供搜索引擎做進(jìn)一步處理(分檢整理下載的頁面),而使得用戶能更快的檢索到他們需要的信息。簡...
摘要:百度云搜索,搜各種資料搜網(wǎng)盤,搜各種資料表達(dá)式表示向下查找層指定標(biāo)簽,如表示查找所有標(biāo)簽表示向下查找一層指定的標(biāo)簽表示查找指定屬性的值可以連綴如屬性名稱屬性值表示查找指定屬性等于指定值的標(biāo)簽可以連綴,如查找名稱等于指定名稱的標(biāo)簽獲取標(biāo)簽文本 【百度云搜索,搜各種資料:http://www.lqkweb.com】 【搜網(wǎng)盤,搜各種資料:http://www.swpan.cn】 xpath...
摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
閱讀 1221·2021-09-22 15:24
閱讀 2314·2019-08-30 15:44
閱讀 2693·2019-08-30 10:55
閱讀 3387·2019-08-29 13:25
閱讀 1673·2019-08-29 13:09
閱讀 1425·2019-08-26 14:05
閱讀 1423·2019-08-26 13:58
閱讀 2012·2019-08-26 11:57