网页爬虫 - python如何优雅的进行字符过滤?
黄舟
黄舟 2017-04-18 10:15:45
0
2
492

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

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

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

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

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

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(2)
伊谢尔伦

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

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

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

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

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

いいねを押す +0
迷茫

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

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!