検索

ホームページ  >  に質問  >  本文

网页爬虫 - python如何优雅的进行字符过滤?

比如我在采集一个网站的时候,我想直接过滤或是替换掉一些没用的信息,比如QQ 手机 或是 www 开头的东西

数据量小一点还好我可以这样写:

if "http" or "www" or "QQ" or "qq" in content:
    ....

但是数据量大的话那不是很悲剧?
难道要一直or来连接?

最优雅的实现方式是什么?我想能用正则的话肯定是比较好的

因为需要匹配的信息太多了 ,比如QQ号码,网址,电话等这些都要进行查找和替换

黄舟黄舟2766日前494

全員に返信(2)返信します

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:17:45

    これはデータのサイズによって異なります。データのサイズが小さい場合は、データをクロールするたびにキーワードを Redis または何らかの構成ファイルに保存して、すべてのキーワードを置き換えることができます。

    ただし、Web クローラーであるため、フィルタリングする必要があるキーワードや文字列が特に大きい場合は、正規表現を使用したとしても効率が非常に心配になります。

    たとえば、フィルターで除外する必要があるキーワードが 100,000 個あり、これらの 100,000 個のキーワードを 50,000 個の正規表現に結合できるとします (多数の正規表現を手動で記述するか、正規表現を自動的に生成するかは言うまでもありません)。 crime down は非常に長いため、すべての正規表現と一致させるには少なくとも 50,000 回ループする必要があります。この単純な方法はおそらく利用できないと思います。

    私の個人的な提案です。この記事を参照してください: http://blog.jobbole.com/99910/ この記事では、より効率的なクエリを実現するためにキーワードをセグメント化し、キーワード インデックスを構築する方法について説明しています。この記事では、stackoverflow のタグ エンジンを紹介します。

    または、ElasticSearch のような強力なものを使用することをお勧めします。 。 。明らかに、ここで何十もの言葉を言う方法はありません。

    返事
    0
  • 迷茫

    迷茫2017-04-18 10:17:45

    上記の人が言ったことは正しいですが、データが小さい場合は、任意の使用を検討できます

    リーリー

    返事
    0
  • キャンセル返事