爬虫類小さなプログラム(皮膚クロールヒーローヒーロー連合)

まず、爬虫類プロセス:

    1、明確な目標:URL =  https://daoju.qq.com/lol/list/17-0-0-0-0-0-0-0-0-0-0-00-0-0-1 -1.shtml?aDTAG = innercop.lol.SY.shoppinglist_new_17

    2は、データタイプが決定される:動的/静的(ここではダイナミック型、JSによってレンダリングされます)

   注意:データの種類を判別する方法は?、ページのソースコードは、私たちがクロールに必要なデータで見つけることができるならば、ソースによって判断され、それは、静的を表し、1は、データを取得することができます組み合わせたWebページを介してアクセスすることができます

                                                         ページは、私たちが必要とするデータのソースを見つけることができない場合、それは一般的な動的なページは、JSによってレンダリングされ、動的です

    F12またはパケットキャプチャツールによって:3は、ツールを使用してデータを検索します

   

 

 

     図4に示すように、データ解析、データ抽出

     5、データを保存します。データベースを保存したり、ファイルを保存

 

第二に、サンプルコード

    1.準備:データを保存するためにフォルダ:「\\ LOL_pic D」を作成します。

                           ダウンロード要求パッケージ:PY -3.6 -mピップリクエストをインストール 

    2、コーディング

インポート要求が
 インポートJSON
 インポート時間を
合計 = 55   Webページからは、54ページを参照してくださいすることができ
試し用のページの範囲(1、トータル+ 1 ):
        URL = " https://apps.game.qq.com/daoju/v3/api/hx/goods/app/v71/GoodsListApp.php?view=biz_cate&page={}&pageSize=16&orderby=dtShowBegin&ordertype=desc&cate=17&appSource=pc&plat = 1&OUTPUT_FORMAT = JSONP&ビズ=笑&_ = 1576484717258 .format(ページ)
        ヘッダ = { User--エージェントは「を使用する独自の}
        respon = requests.get(URL = URL、ヘッダー= ヘッダ)
        コンテンツ = respon.text   データはJSON形式の.json()であれば、データは、バイナリ形式の.contentである場合、データは、文字列フォーマットの.textであれば
        #の印刷(コンテンツ) 
        結果= content.split(= 、 1)[1]  得られた彼のハンドル(JSON)、順番にコンバートするなどの文字列、文字列辞書 
        データjson.loads =(結果)   辞書のようなデータタイプを変換
        するための picture_url におけるデータ[ データ ] [ " 製品" ]:
            img_name = picture_url [ " たpropName " ]
             もし ' / '  img_name:
                img_name = img_name.replace(' / '' - 'ファイル名'/'問題で処理 
            img_url picture_url = [ " propImg " ]
            画像 = requests.get(URL = img_url、ヘッダ=ヘッダ).content   取得する画像情報、バイナリデータ型 
            を開くと(R&LT ' D :. \ LOL_pic \ {} JPG ' .format(img_name)、' WB ') :AS F   #のバイナリ書き込み用いて画像
                f.write(写真)
         プリント" 最初のページ} {クロール成功" .format(ページ))
        (time.sleep。3)  引っ掛けない
以外例外としてE:
     印刷" 別のクロール:{} " .format(E))
 最後に印刷は、" プログラムを終了します"

    3、結果

    

 

 

三、Pythonのパッケージファイル

    1、サードパーティ製のパッケージをインストール:PY -3.6 -mピップpyInstallerのインストール

                                   PY -3.6 -mピップ暗号をインストール

         注:この2つのパッケージが比較的大きいので、それ以外の場合はエラーになり、ネットワークの速度を確保するようにしてください

        次のような状況では、インストール中に発生しました:

        

 

        タイムアウト、スピードの理由は、にあることを示しhttps://www.lfd.uci.edu/~gohlke/pythonlibs/#genshi:サイトはプルアップ、pyInstallerの-3.5-py2.py3-なし-any.whlこのファイルのダウンを

        次に行うPY -3.6 -m PIP CMDにインストール  pyInstallerの-3.5なし-py2.py3-コマンドany.whlの

        因为这两包是多个小包组成的,如果遇到中途有某个包下载不了的情况,可以到上面这个网站去拉取对应的文件下来安装,举个例子:

  

 

 

   总之:保证网速会少去很多麻烦

    2、在cmd输入命令:pyinstaller -F D:\test.py   # 这个py文件是需要处理成.exe的文件

        如果在执行的时候遇到下面这个情况,代表你的 cryptography 包未安装或者安装失败导致的,请重新安装

  

 

   安装成功的图如下所示,请注意生成目录

  

 

   

 

    3、拖至桌面,双击即可运行,如果需要更换图标,操作流程如下所示:

        首先:到网上去找一个.ico的图标,免费图标官网的链接 https://www.easyicon.net/

         

 

 

        然后:cmd运行命令  pyinstaller -w -i C:\Users\xxx\LOL_crawler\pc.ico C:\Users\xxx\LOL_crawler\LOL_img_program.py # 这是绝对路径,用相对路径也是可以的

  

        最后:成功后到生成的路径下可看到如下的内容

  

 

结束!!!如有疑问请留言!!!

おすすめ

転載: www.cnblogs.com/su-sir/p/12051564.html