scrapyフレームはcookieを携帯して淘宝のショッピングカーの機能の実現コードを訪問します。


scrapyフレーム紹介
  • Scripyは、ウェブサイトのデータを取得し、構造データを抽出するために作成されたアプリケーションフレームであり、用途は非常に広いです。
  • フレームの力は、ユーザーがカスタマイズしていくつかのモジュールを開発するだけで、簡単に爬虫類を実現できます。ウェブページの内容や各種画像をキャプチャするために、とても便利です。
    scrapyアーキテクチャ図
  • craphy Egine(エンジン):Spider、ItemPipeline、Downloader、Schdulerの間の通信、信号、データ転送などを担当します。
  • Scheduler(スケジューラ):エンジンから送られてきたRequestの要求を受けて、一定の方法で整理して並べます。入隊します。エンジンが必要な時、エンジンに返却します。
  • Downloader:Scripy Egineから送信されたすべてのRequests要求をダウンロードし、取得したResonsesをScripy Egineに渡し、エンジンからSpiderに渡して処理します。
  • Spider(爬虫類):すべてのResonsesを処理し、そこからデータを分析し、Itemフィールドに必要なデータを取得し、フォローアップすべきURLをエンジンに提出し、再度Schduler(スケジューラ)に入ります。
  • Item Pipeline(パイプライン):Spiderで取得したItemを処理し、後処理(詳細分析、フィルタ、記憶など)を行う場所。
  • Downloader Middlewares:カスタマイズしてダウンロード機能を拡張できるコンポーネントとすることができます。
  • Spider Middlewares(Spiderミドルウェア):拡張機能と操作エンジンとSpiderの間で通信可能な機能コンポーネント(例えばSpiderに入るResonses)として理解できます。Spiderから出るRequestsと

  • 本文の開始
    私たちは知っています。登録しなければその内容にアクセスできないページがあります。scrapy登録の実現は一般的に3つの方式になります。
    1.最初の要求で直接ユーザ名とパスワードを携帯する。
    2.一回の宛先にアクセスする必要があります。サーバはいくつかのパラメータを返します。例えば、認証コード、特定の暗号化文字列などは、自分で対応する方法で分析して抽出します。二回目の要求時にこれらのパラメータを持っていけばいいです。https://www.jb51.net/article/190242.htmを参照することができます。
    3.花里胡笛は必要なく、直接手動で登録して、クッキーを取り出して、訪問先に参加すればいいです。
    本論文では第三の例として、scrapyがクッキーを携帯してショッピングカーにアクセスすることを実現する。
    1.まず手動で自分のタオバオアカウントを登録し、その中からクッキーを取り出して、下の図のようにします。

    2.cmdでworkon自身の仮想環境を作成するプロジェクト(scrapy startproject taobao)
    3.pycharmプロジェクトディレクトリを開いて、terminalに入力して、下記のディレクトリ構造を得ます。

    4.settingに対応する設定を設定する
    5.itaobaoに業務コードを書く。まず人クッキーを入れずに直接ショッピングカーに訪問します。コードは以下の通りです。
    
    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)
    返信メッセージは以下の通りです。

    明らかにログインページにジャンプするという意味です。
    6.本題に戻ります。正しいコードは以下の通りです。start_requests()方法を書き換える必要があります。この方法は爬虫類の開始サイトに要求を返すことができます。この戻りの要求は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       ,       cookie      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)
    応答情報は以下の通りです。

    明らかにこれは自分のショッピングカートの本当のソースコードです。
    はい、成功しました。これからは業務の需要に応じてxpath(自分はこういう方式が好きです。)で自分の欲しい情報を抽出できます。
    締め括りをつける
    以上で、scrapyフレームはcookieを携帯して淘宝のショッピングカーの文章を訪問して紹介しました。もっと関連したscrapyフレームcookieの内容は私達の以前の文章を検索してください。または次の関連記事を引き続きご覧ください。これからもよろしくお願いします。