Rumah > Soal Jawab > teks badan
比如我在采集一个网站的时候,我想直接过滤或是替换掉一些没用的信息,比如QQ 手机 或是 www 开头的东西
数据量小一点还好我可以这样写:
if "http" or "www" or "QQ" or "qq" in content:
....
但是数据量大的话那不是很悲剧?
难道要一直or来连接?
最优雅的实现方式是什么?我想能用正则的话肯定是比较好的
因为需要匹配的信息太多了 ,比如QQ号码,网址,电话等这些都要进行查找和替换
伊谢尔伦2017-04-18 10:17:45
Ini bergantung pada saiz data anda Saiz data adalah kecil, anda boleh menyimpan kata kunci dalam redis atau beberapa fail konfigurasi.
Tetapi kerana anda seorang perangkak web, jika kata kunci dan rentetan yang perlu ditapis adalah sangat besar, walaupun anda menggunakan ungkapan biasa, kecekapannya akan sangat membimbangkan.
Sebagai contoh, anda mempunyai 100,000 kata kunci yang perlu ditapis keluar Katakan anda boleh menggabungkan 100,000 kata kunci ini menjadi 50,000 ungkapan biasa (apatah lagi sama ada untuk menulis begitu banyak ungkapan biasa secara manual atau menjana ungkapan biasa secara automatik). turun setiap masa adalah sangat panjang, dan ia perlu digelung sekurang-kurangnya 50,000 kali untuk memadankan semua peraturan biasa. Saya fikir kaedah mudah ini mungkin tidak tersedia.
Hanya cadangan peribadi saya, anda boleh merujuk artikel ini: http://blog.jobbole.com/99910/ Ia bercakap tentang cara membahagikan kata kunci dan membina indeks kata kunci untuk mencapai pertanyaan yang lebih cekap. Artikel ini memperkenalkan enjin teg stackoverflow.
Atau saya syorkan menggunakan wajaran berat seperti ElasticSearch. . . Jelas sekali tidak ada cara untuk mengatakan berpuluh-puluh perkataan di sini.
迷茫2017-04-18 10:17:45
Apa yang anda katakan di atas adalah betul, tetapi jika datanya kecil, anda boleh pertimbangkan untuk menggunakan mana-mana
a = [1, 2]
b = [2, 3]
if any(i in b for i in a):
pass