pythonフォームのコミット
2719 ワード
pythonは爬虫シミュレーションフォームを書いて提出するライブラリが実はたくさんありますが、私はRequestsライブラリを使って簡単なフォーム提出をしています.
Requetsライブラリのインストール方法:
一、ファイルのないフォームの提出
ファイルのないコミットでは、ターゲットのWebフォームの各要素の名前とコミットする値を表示し、次のhtmlコードなどの構造体に作成してコミットすればいいだけです.
コードから分かるように、フォームに提出する必要があるキー値のペアは3対の{action:doc},{ocrLang:2},{keyLang:0}で、フォームはhttp://xxx.xxx.com/xxx.php
で、対応する爬虫類のpythonコードは以下の通りです.
二、書類のあるフォームの提出
ファイルのあるフォームのコミットも同様で、以下のhtmlフォームを例に挙げます.
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フォームを例に挙げます.
对于普通的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)