Scarapyアナログ登録急募ネットの実現コード


1.収集網の登録画面を開けて、まずシミュレーション登録して、バッグを掴み、post要求のrequestパラメータを得る。

2.上記のパラメータを構築してformdataに渡せばいいです。
パラメータ解析:
set cookie:転送された値を自動登録するために、チェックしないとデフォルトは0です。
同前hashu値の分析:レスポンスページのソースコードを確認するだけでいいです。正規表現で抽出します。
3.コード実現
1.workonは自分の仮想環境cmdにプロジェクトディレクトリに切り替えて、scrapy startproject ganjiwangdengluを入力して、pycharmでこのディレクトリを開くことができます。
2.pycharm terminalにscrapy ganji ganji ganjicomを入力して住所を作成します。下記はプロジェクトディレクトリです。

3.コードの詳細

import scrapy
import re

class GanjiSpider(scrapy.Spider):
  name = 'ganji'
  allowed_domains = ['ganji.com']
  start_urls = ['https://passport.ganji.com/login.php']

  def parse(self, response):
    hash_code = re.search(r'"__hash__":"(.+)"}', response.text).group(1) #       
    img_url = 'https://passport.ganji.com/ajax.php?dir=captcha&module=login_captcha' #    url
    yield scrapy.Request(img_url, callback=self.do_formdata, meta={'hash_code': hash_code}) #                   

  def do_formdata(self, response):
    with open('yzm.jpg', 'wb') as f:
      f.write(response.body)
      #        :1,        ,2,   ,3 tesseract  ,         
    code = input('      :')
    #     
    formdata = {
      'username': 'your_username',
      'password': 'your_password',
      'setcookie': '14',
      'checkCode': code,
      'next': '',
      'source': 'passport',
      '__hash__': response.request.meta['hash_code'] # meta  respose.request 
    }
    login_url = "https://passport.ganji.com/login.php"
    yield scrapy.FormRequest(url=login_url, formdata=formdata, callback=self.after_login) #       

  def after_login(self, response):
    print(response.text)
4.端末はscrapy carwl ganjiを入力すれば大成功を収めます。
戻ってきたjson文字列の解析は以下の通りです。

注:settingにおける設定は詳細には記載されていない。
締め括りをつける
ここでScripyについてウェブサイトに登録した記事を紹介します。もっと関連したScripyに登録してネットの内容を収集します。以前の文章を検索してください。または下記の関連記事を引き続き閲覧してください。これからもよろしくお願いします。