'''
広東省公安局の出入国政府サービスネットワークでパスポートとパス申請の進捗状況を確認してください。
分析された URL の形式は http://www.gdcrj.com/wsyw/tcustomer/tcustomer.do?&method=find&applyid=ID カード番号です
ソケット リクエストの Web ページ HTML を構築し、通常のマッチングを使用しますクエリ結果を取得するには
'''
def gethtmlbyidentityid(identityid):
s =ソケット.socket(socket.AF_INET,ソケット.SOCK_STREAM)
host = 'www.gdcrj.com';
サブ URL = '/wsyw /tcustomer/tcustomer.do?&method=find&applyid={0}'
ポート = 80;
remote_ip =ソケット.gethostbyname(host)
s.connect((remote_ip , port))
print('[情報]: ソケット接続成功')
メッセージ = 'GET '+ suburl.format(identityid) +' HTTP/1.1rnHost: '+ host +'rnrn'
# str 2 バイト
m_bytes = message.encode('utf-8')
# バイトを送信
s.sendall(m_bytes)
print('[情報]: リモートダウンロード中...')
recevstr = ''
while True:
# バイトを返す
recev = s.recv(4096)
# バイト 2 str
recevstr += accept.decode(encoding = ' utf-8'、エラー = 'ignore')
そうでない場合、recev:
s.close()
print('[INFO]: Web ページのリモート ダウンロードが完了しました')
Break
recevstr
'''
正規表現を使用して、前の手順で取得した Web ページの HTML コンテンツからクエリ結果を検索します
'''
def getresultfromhtml(htmlstr):
linebreaks = re.compile( r'ns*')
space = re.compile('( )+')
resultReg = re.compile(r'
#改行とスペースを削除します
htmlstr = linebreaks.sub('', htmlstr)
htmlstr = space.sub(' ', htmlstr)
#クエリ結果の照合
result = resultReg.findall(htmlstr)
for res in result:
print(res.strip())
if __name__ == '__main__':
identityid = input('ID 番号を入力してください (広東省居住者のみ):')
try:
identityid = int(identityid)
print('[INFO]: クエリが開始されました')
html = gethtmlbyidentityid(identityid)
getresultfromhtml(html)
print('[INFO]: クエリは成功しました')
例外:
print('[警告]: 不正な入力')
input('[情報]: 終了するには任意のキーを押してください')