欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

scrapy框架攜帶cookie訪問淘寶購物車功能的實(shí)現(xiàn)代碼

 更新時(shí)間:2020年07月07日 10:07:25   作者:人丑就要多讀書-Wu  
這篇文章主要介紹了scrapy框架攜帶cookie訪問淘寶購物車,本文通過實(shí)例代碼圖文詳解給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

scrapy框架簡介

  • Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛
  • 框架的力量,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲,用來抓取網(wǎng)頁內(nèi)容以及各種圖片,非常之方便

scrapy架構(gòu)圖

  • crapy Engine(引擎): 負(fù)責(zé)Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號、數(shù)據(jù)傳遞等。
  • Scheduler(調(diào)度器): 它負(fù)責(zé)接受引擎發(fā)送過來的Request請求,并按照一定的方式進(jìn)行整理排列,入隊(duì),當(dāng)引擎需要時(shí),交還給引擎。
  • Downloader(下載器):負(fù)責(zé)下載Scrapy Engine(引擎)發(fā)送的所有Requests請求,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理,
  • Spider(爬蟲):它負(fù)責(zé)處理所有Responses,從中分析提取數(shù)據(jù),獲取Item字段需要的數(shù)據(jù),并將需要跟進(jìn)的URL提交給引擎,再次進(jìn)入Scheduler(調(diào)度器),
  • Item Pipeline(管道):它負(fù)責(zé)處理Spider中獲取到的Item,并進(jìn)行進(jìn)行后期處理(詳細(xì)分析、過濾、存儲等)的地方.
  • Downloader Middlewares(下載中間件):你可以當(dāng)作是一個(gè)可以自定義擴(kuò)展下載功能的組件。
  • Spider Middlewares(Spider中間件):你可以理解為是一個(gè)可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件(比如進(jìn)入Spider的Responses;和從Spider出去的Requests)

正文開始

我們知道,有的網(wǎng)頁必須要登錄才能訪問其內(nèi)容。scrapy登錄的實(shí)現(xiàn)一般就三種方式。

1.在第一次請求中直接攜帶用戶名和密碼。

2.必須要訪問一次目標(biāo)地址,服務(wù)器返回一些參數(shù),例如驗(yàn)證碼,一些特定的加密字符串等,自己通過相應(yīng)手段分析與提取,第二次請求時(shí)帶上這些參數(shù)即可??梢詤⒖?a href="http://www.dbjr.com.cn/article/190242.htm">http://www.dbjr.com.cn/article/190242.htm

3.不必花里胡哨,直接手動登錄成功,然后提取出cookie,加入到訪問頭中即可。

本文以第三種為例,實(shí)現(xiàn)scrapy攜帶cookie訪問購物車。

1.先手動登錄自己的淘寶賬號,從中提取出cookie,如下圖中所示。

2.cmd中workon自己的虛擬環(huán)境,創(chuàng)建項(xiàng)目 (scrapy startproject taobao)

3.pycharm打開項(xiàng)目目錄 ,在terminal中輸入(scrapy genspider itaobao taobao.com),得到如下的目錄結(jié)構(gòu)

4.setting中設(shè)置相應(yīng)配置

5. 在itaobao中寫業(yè)務(wù)代碼。我們先不加人cookie直接訪問購物車,代碼如下:

import scrapy

class ItaobaoSpider(scrapy.Spider):
 name = 'itaobao'
 allowed_domains = ['taobao.com']
 start_urls = [
  'https://cart.taobao.com/cart.htm?spm=a1z02.1.a2109.d1000367.OOeipq&nekot=1470211439694'] # 第一次就直接訪問購物車

 def parse(self, response):
  print(response.text)

響應(yīng)回來信息如下

明顯是跳轉(zhuǎn)到登錄頁面的意思。

6.言歸正傳,正確的代碼如下,需要重寫start_requests()方法,此方法可以返回一個(gè)請求給爬蟲的起始網(wǎng)站,這個(gè)返回的請求相當(dāng)于start_urls,start_requests()返回的請求會替代start_urls里的請求。

import scrapy

class ItaobaoSpider(scrapy.Spider):
 name = 'itaobao'
 allowed_domains = ['taobao.com']
 # start_urls = ['https://cart.taobao.com/cart.htm?spm=a1z02.1.a2109.d1000367.OOeipq&nekot=1470211439694']
 # 需要重寫start_requests方法
 def start_requests(self):
  url = "https://cart.taobao.com/cart.htm?spm=a1z02.1.a2109.d1000367.OOeipq&nekot=1470211439694"
  # 此處的cookie為手動登錄后從瀏覽器粘貼下來的值
  cookie = "thw=cn; cookie2=16b0fe13709f2a71dc06ab1f15dcc97b; _tb_token_=fe3431e5fe755;" \
     " _samesite_flag_=true; ubn=p; ucn=center; t=538b39347231f03177d588275aba0e2f;" \
     " tk_trace=oTRxOWSBNwn9dPyorMJE%2FoPdY8zfvmw%2Fq5hoqmmiKd74AJ%2Bt%2FNCZ%" \
     "2FSIX9GYWSRq4bvicaWHhDMtcR6rWsf0P6XW5ZT%2FgUec9VF0Ei7JzUpsghuwA4cBMNO9EHkGK53r%" \
     "2Bb%2BiCEx98Frg5tzE52811c%2BnDmTNlzc2ZBkbOpdYbzZUDLaBYyN9rEdp9BVnFGP1qVAAtbsnj35zfBVfe09E%" \
     "2BvRfUU823q7j4IVyan1lagxILINo%2F%2FZK6omHvvHqA4cu2IaVAhy5MzzodyJhmXmOpBiz9Pg%3D%3D; " \
     "cna=5c3zFvLEEkkCAW8SYSQ2GkGo; sgcookie=E3EkJ6LRpL%2FFRZIBoXfnf; unb=578051633; " \
     "uc3=id2=Vvl%2F7ZJ%2BJYNu&nk2=r7kpR6Vbl9KdZe14&lg2=URm48syIIVrSKA%3D%3D&vt3=F8dBxGJsy36E3EwQ%2BuQ%3D;" \
     " csg=c99a3c3d; lgc=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349; cookie17=Vvl%2F7ZJ%2BJYNu;" \
     " dnk=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349; skt=4257a8fa00b349a7; existShop=MTU5MzQ0MDI0MQ%3D%3D;" \
     " uc4=nk4=0%40rVtT67i5o9%2Bt%2BQFc65xFQrUP0rGVA%2Fs%3D&id4=0%40VH93OXG6vzHVZgTpjCrALOFhU4I%3D;" \
     " tracknick=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349; _cc_=W5iHLLyFfA%3D%3D; " \
     "_l_g_=Ug%3D%3D; sg=%E8%8D%893d; _nk_=%5Cu5929%5Cu4ED9%5Cu8349%5Cu5929%5Cu4ED9%5Cu8349;" \
     " cookie1=VAmiexC8JqC30wy9Q29G2%2FMPHkz4fpVNRQwNz77cpe8%3D; tfstk=cddPBI0-Kbhyfq5IB_1FRmwX4zaRClfA" \
     "_qSREdGTI7eLP5PGXU5c-kQm2zd2HGhcE; mt=ci=8_1; v=0; uc1=cookie21=VFC%2FuZ9ainBZ&cookie15=VFC%2FuZ9ayeYq2g%3D%3D&cookie" \
     "16=WqG3DMC9UpAPBHGz5QBErFxlCA%3D%3D&existShop=false&pas=0&cookie14=UoTV75eLMpKbpQ%3D%3D&cart_m=0;" \
     " _m_h5_tk=cbe3780ec220a82fe10e066b8184d23f_1593451560729; _m_h5_tk_enc=c332ce89f09d49c68e13db9d906c8fa3; " \
     "l=eBxAcQbPQHureJEzBO5aourza7796IRb8sPzaNbMiInca6MC1hQ0PNQD5j-MRdtjgtChRe-PWBuvjdeBWN4dbNRMPhXJ_n0xnxvO.; " \
     "isg=BJ2drKVLn8Ww-Ht9N195VKUWrHmXutEMHpgqKF9iKfRAFrxIJAhD3DbMRAoQ1unE"
  cookies = {}
  # 提取鍵值對 請求頭中攜帶cookie必須是一個(gè)字典,所以要把原生的cookie字符串轉(zhuǎn)換成cookie字典
  for cookie in cookie.split(';'):
   key, value = cookie.split("=", 1)
   cookies[key] = value
  yield scrapy.Request(url=url, cookies=cookies, callback=self.parse)
 def parse(self, response):
  print(response.text)

響應(yīng)信息如下(部分片段):

很明顯這是自己購物車的真實(shí)源代碼。

好了,大功告成啦,接下來就可以按照業(yè)務(wù)需求用xpath(自己喜歡用這種方式)提取自己想要的信息了。

總結(jié)

到此這篇關(guān)于scrapy框架攜帶cookie訪問淘寶購物車的文章就介紹到這了,更多相關(guān)scrapy框架cookie內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python提取視頻中的音頻的實(shí)現(xiàn)示例

    python提取視頻中的音頻的實(shí)現(xiàn)示例

    MoviePy是一個(gè)用于視頻編輯的庫,它可以提取視頻中的音頻并保存為音頻文件,本文主要介紹了python提取視頻中的音頻的實(shí)現(xiàn)示例,感興趣的可以了解一下
    2024-03-03
  • MATLAB數(shù)學(xué)建模之畫圖匯總

    MATLAB數(shù)學(xué)建模之畫圖匯總

    這篇文章主要介紹了MATLAB數(shù)學(xué)建模之畫圖匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python基于socket模擬實(shí)現(xiàn)ssh遠(yuǎn)程執(zhí)行命令

    python基于socket模擬實(shí)現(xiàn)ssh遠(yuǎn)程執(zhí)行命令

    這篇文章主要介紹了python基于socket模擬實(shí)現(xiàn)ssh遠(yuǎn)程執(zhí)行命令,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-12-12
  • Python3 使用pillow庫生成隨機(jī)驗(yàn)證碼

    Python3 使用pillow庫生成隨機(jī)驗(yàn)證碼

    這篇文章主要介紹了Python3 使用pillow庫生成隨機(jī)驗(yàn)證碼,需要的朋友可以參考下
    2019-08-08
  • python圖片灰度化處理的幾種方法

    python圖片灰度化處理的幾種方法

    灰度化處理是我們進(jìn)行圖像處理的很重要的一個(gè)過程,本文主要介紹了python圖片灰度化處理的幾種方法,感興趣的可以了解一下
    2021-06-06
  • python中的?sorted()函數(shù)和sort()方法區(qū)別

    python中的?sorted()函數(shù)和sort()方法區(qū)別

    這篇文章主要介紹了python中的?sorted()函數(shù)和sort()方法,首先看sort()方法,sort方法只能對列表進(jìn)行操作,而sorted可用于所有的可迭代對象。具體內(nèi)容需要的小伙伴可以參考下面章節(jié)
    2022-02-02
  • python tqdm用法及實(shí)例詳解

    python tqdm用法及實(shí)例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python tqdm用法及實(shí)例詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-06-06
  • python 捕獲 shell/bash 腳本的輸出結(jié)果實(shí)例

    python 捕獲 shell/bash 腳本的輸出結(jié)果實(shí)例

    下面小編就為大家?guī)硪黄猵ython 捕獲 shell/bash 腳本的輸出結(jié)果實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Python中的匿名函數(shù)使用簡介

    Python中的匿名函數(shù)使用簡介

    這篇文章主要介紹了Python中的匿名函數(shù)的使用,lambda是各個(gè)現(xiàn)代編程語言中的重要功能,需要的朋友可以參考下
    2015-04-04
  • 利用OpenCV給彩色圖像添加椒鹽噪聲的方法

    利用OpenCV給彩色圖像添加椒鹽噪聲的方法

    椒鹽噪聲是數(shù)字圖像中的常見噪聲,一般是圖像傳感器、傳輸信道及解碼處理等產(chǎn)生的黑白相間的亮暗點(diǎn)噪聲,椒鹽噪聲常由圖像切割產(chǎn)生,這篇文章主要給大家介紹了關(guān)于利用OpenCV給彩色圖像添加椒鹽噪聲的相關(guān)資料,需要的朋友可以參考下
    2021-10-10

最新評論