Web サイトを介した SMS メッセージの送信を自動化するスクリプトに取り組んでいます。これを行うためにMechanizeとBeautifulSoup 4を使用しています。
このプログラムは、コマンド ラインから呼び出し、番号とメッセージを引数として渡すことによって機能します。このために私はOptparseを使用しています。
メッセージはコマンド ライン経由でプログラムに渡されますが、Web サイトでは SMS メッセージごとに 444 文字しか受け付けません。だから私は次のことをしようとしています:
- メッセージ文字列の長さ (空白を含む) と IF が 444 より大きい場合...
- 一時メッセージ文字列を受け取り、一時メッセージ文字列の長さが 444 を超えなくなるまで、インデックス 0 から全メッセージ文字列の最初の 444 文字をリスト オブジェクトに追加する while ループを繰り返します。
- 次に、リスト オブジェクト内のアイテムの数を使用して、For ループ ブロックを反復処理します。このブロックは、各反復が 444 文字の文字列のインデックス (メッセージ全体の分割) に対応するメッセージの送信処理をループします。その 444 文字のメッセージ スライスを適切な HTML フォーム フィールドに配置し、Mechanize を送信するメッセージとして使用します (理解できることを願っています)。
これまでに書いたコードは次のとおりです。
message = "abcdefghijklmnopqrstuvwxyz..." # imagine it is > 444 characters
messageList = []
if len(message) > 444:
tmpMsgString = message
counter = 0
msgLength = len(message)
while msgLength > 444:
messageList.append(tmpMsgString[counter:counter+445]) # 2nd index needs to point to last character's position in the string, not "counter+445" because this would cause an error when there isn't enough characters in string?
tmpMsgString = tmpMsgString[counter+445:msgLength])
msgLength = msgLength-444
counter = counter + 444
else:
messageList.append(message)
コマンド ラインから引数を受け取るコードの部分を管理できます。また、for ループ ブロックをループして、リスト内の各項目を送信するメッセージとして使用することもできますが、Python の経験はほとんどなく、コードのこの部分で私を助けるために、経験豊富な目が必要です! すべての助けに感謝します。