私は文字列からトークンを見つけようとしています。私は他の文字列でこのメソッドを使用していますが、正常に動作しますが、この結果は返されません。 findallではなく、検索ではありません。python regex matching、findallまたはsearchが値を返さない
pattern= re.compile(r'<input class="token" value="(.+?)" name="csrftoken_reply">')
matches = pattern.findall(htmlstring)
for match in matches:
print match
各応答文字列には1つの値しかありません。私は「印刷一致」
のための結果を得ていないのですけれども、私もre.searchを使ってみましたが、同じことが起こる、NoneTypeオブジェクトが返されます...
MORE INFO:
この私はパースだHTMLの一部です:
<form id="threadReplyForm" class="clearfix" method="post" action="/go/messages/private/threadID=0551796">
<input class="csrftoken" type="hidden" value="a7b161b7" name="csrftoken_reply">
<input type="hidden" value="reply" name="action">
<div class="editorWrapper">
<div id="premiumSmiliesNotAllowed" class="warning" style="display: none;">
<div id="editor_13" class="clearfix editor" mode="full">
<ul id="editorToolbar_13" class="editorToolbar clearfix">
<textarea id="messageInput" class="autogrow" cols="20" rows="8" name="message"></textarea>
<div id="previewDiv" class="previewArea" style="display: none;"></div>
</div>
<script>
</div>
<script>
<span class="loadingIndicator right loadingIndicatorMessage">
<p class="clearfix">
</form>
これで、それを解析:
pattern= re.compile(r'<input class="csrftoken" type="hidden" value="(.+?)" name="csrftoken_reply">')
matches = pattern.findall(str(response.read()))
for match in matches:
print match
を
出力としてa7b161b7を取得しようとしています
おそらく 'class =" token "の後に2つのスペースがあるので? –
空白にはいくつかのエラーがあります。クラスと値の間に2つのスペースがあるということは本当に意味しましたか? – kojiro
あなたがマッチさせたいと思うhtml文字列を投稿してください(その部分) – joaquin