私はあなたのすべてのリンクを追跡するWebページからデータを取得しようとしています。 Webはひどくモデル化されており、ページの特定の部分のリンクにはリンクの前後にスペースが含まれているため、治療が続き、Webサーバーはループを作成してリダイレクトします。詐欺的なURLリンクのリンク
リンクのURLをフィルタリングしようとしましたが、不可能です。常に空白またはシンボル+が返されます。で、コード
def cleanurl(link_text):
print "original: ", link_text
print "filter: ", link_text.strip("\s+\t\r\n '\"")
return link_text.strip("\s+\t\r\n '\"")
#return " ".join(link_text.strip("\t\r\n '\""))
#return link_text.replace("\s", "").replace("\t","").replace("\r","").replace("\n","").replace("'","").replace("\"","")
rules = (
Rule (LinkExtractor(allow=(), deny=(), process_value= cleanurl)),
)
のWebコード
<a href=
" ?on_sale=1
"
class="selectBox">ON SALE
</a>
出力cleanurl
original: http://www.portshop.com/computers-networking-c_11257/ ?on_sale=1
filter: http://www.portshop.com/computers-networking-c_11257/ ?on_sale=1
の
パートIは、正規表現などを使用しようとしましたが、私はURLをサニタイズすることはできませんいくつかのケースでは、他の人では動作しない場合は、%20(空白)を+に変更します。
ありがとうございます!
あなたの質問には、さらにURLを書き直すことはできますか?可能であれば、処理しているURLと現在の出力と期待する出力をいくつか与えてください。 –