2016-05-05 23 views
-1

私はリンクのリストを持っています。私はそれらが私の否認ファイルにリストされているかどうかを見たいと思っています。比較文字列と変更された文字列と部分文字列

除外ファイルには、domain:getpaydayloan.orgと表示されているドメインと同様、両方のURL(例:http://getpaydayloan.org/blog/blog-how-to-apply-for-online-payday-loans-san)が含まれています。

新しいURLファイルにはURLのみが含まれます。 http://getpaydayloan.org/blog/blog-how-to-apply-for-online-payday-loans-san

私は新しいURLが既に否認ファイルに含まれているかどうかを確認したいと思います。私は現在、diff = set(url_set)-set(disavow_urls)を使ってdiffを生成していますが、domain:url.com形式を使って否認ファイルに含まれているかどうかを確認する必要もあります。

どうすればいいですか?ここで

+1

'http://getpaydayloan.org/blog/blog-how-to-for-online-payday-loans-san'はドメインではありません。 –

+2

https://docs.python.org/3/library/urllib.parse .html –

+0

おっと、ごめんなさい、私アリURL。ありがとう。 – austenallred

答えて

1

https://github.com/growth-austen/disavow_automatorは、URLが否認ドメインのいずれかが含まれているかどうかをチェックするための機能である:それは助け場合

は、ここで全体のスクリプトです。

def inDisavow(url, disavowDomainList): 
    for domain in disavowDomainList: 
     if domain in url: 
      return true 
    return false 
+0

これは、URLの 'http:// someurl.com/123'と' http:// someurl.com/123'を否認して比較しているが、http: // someurl.com/123'を 'domain:someurl.com'に追加します。 私を驚かせていた部分がドメインを解析できると思います。 'http://'と '/ 123'を削除することができれば、' someurl.com'を保存し、それを 'domain:someurl.com'と比較してください。ウェインは私に十分なスタートを与えてくれたはずです。 ありがとう! – austenallred

+2

あなたの否認文字列が常にdomain:url.comである場合、if文を "if domain [7:] in url:"に変更することによって、 'domain: – David

1

楽しみのためにDavidの機能にいくつかの代替の定義:

return any(domain in url for domain in disavowDomainList) return any(map(url.__contains__, disavowDomainList))

(メモリ効率のためのPython 2にitertools.imapmapを置き換える)

関連する問題