pythonフォームのコミット

2719 ワード

pythonは爬虫シミュレーションフォームを書いて提出するライブラリが実はたくさんありますが、私はRequestsライブラリを使って簡単なフォーム提出をしています.
Requetsライブラリのインストール方法:
sudo pip install requests

一、ファイルのないフォームの提出
ファイルのないコミットでは、ターゲットのWebフォームの各要素の名前とコミットする値を表示し、次のhtmlコードなどの構造体に作成してコミットすればいいだけです.

:

:


コードから分かるように、フォームに提出する必要があるキー値のペアは3対の{action:doc},{ocrLang:2},{keyLang:0}で、フォームはhttp://xxx.xxx.com/xxx.php
で、対応する爬虫類のpythonコードは以下の通りです.
# -*- coding:utf-8 -*-
import requests

#            
keywords = {
         'action':'doc',
         'ocrLang':'2',
         'keyLang':'0'
        }

#           
url = "http://xxx.xxx.com/xxx.php"

# post               r 
r = requests.post(url,data = keywords)
サーバから返された結果は変数rに保存され、r.textで返されたhtmlコード、r.statusで返されたステータスコードなどを使用できます.具体的な操作はrequestsの関連ドキュメントを参照してください.また、postメソッドのみを説明します.getメソッドは類似しています.他の資料を探してください.
二、書類のあるフォームの提出
ファイルのあるフォームのコミットも同様で、以下のhtmlフォームを例に挙げます.

:

:

1:
2:

 
  

         对于普通的input,用name和value的键值对的数据,而对于文件,同样要用该标签的name属性来做对应,需要使用多一个结构来提交:

# -*- coding:utf-8 -*-
import requests

#            
keywords = {
         'action':'doc',
         'ocrLang':'2',
         'keyLang':'0'
        }

#           ,img1 img2 input   name  ,               
  ,"file1.jpg" "file2.jpg"          ,       , "C:/file1.jpg"
pictures = {
            'img1':open("file1.jpg",'rb'),
            'img2':open("file2.jpg",'rb')
            }

#           
url = "http://xxx.xxx.com/xxx.php"

# post               r 
r = requests.post(url, data = keywords ,files = pictures)