ホームページ  >  記事  >  バックエンド開発  >  Python 正規マッチング クエリ 香港とマカオの申請進捗例の共有

Python 正規マッチング クエリ 香港とマカオの申請進捗例の共有

WBOY
WBOYオリジナル
2016-06-16 08:45:461199ブラウズ

コードをコピー コードは次のとおりです:

インポートソケット
インポートリ

'''
広東省公安局の出入国政府サービスネットワークでパスポートとパス申請の進捗状況を確認してください。
分析された 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'([^< ;td]+ )', re.MULTILINE)

#改行とスペースを削除します
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('[情報]: 終了するには任意のキーを押してください')

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。