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

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

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

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

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

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

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

黄舟
黄舟

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

모든 응답(2)
伊谢尔伦

이는 데이터 크기에 따라 다릅니다. 최대로 Redis 또는 일부 구성 파일에 키워드를 저장할 수 있습니다. 데이터를 크롤링할 때마다 모든 키워드를 꺼내서 교체하세요.

하지만 웹 크롤러이기 때문에 필터링해야 할 키워드와 문자열이 특히 크면 정규식을 사용하더라도 효율성이 매우 걱정됩니다.

예를 들어, 필터링해야 하는 키워드가 100,000개 있다고 가정하면, 이 100,000개의 키워드를 50,000개의 정규식으로 결합할 수 있다고 가정합니다(그렇게 많은 정규식을 수동으로 작성해야 하는지 또는 자동으로 정규식을 생성해야 하는지는 말할 것도 없습니다). 매번 내려오는 시간은 매우 길며 모든 일반 규칙과 일치하려면 최소 50,000번 이상 반복되어야 합니다. 이 간단한 방법은 가능하지 않을 수도 있다고 생각합니다.

제 개인적인 제안입니다. http://blog.jobbole.com/99910/ 이 기사를 참조하세요. 이 기사에서는 키워드를 분할하고 키워드 색인을 구축하여 보다 효율적인 쿼리를 수행하는 방법에 대해 설명합니다. 이 문서에서는 stackoverflow의 태그 엔진을 소개합니다.

또는 ElasticSearch와 같은 강력한 도구를 사용하는 것이 좋습니다. . . 분명히 여기서는 수십 단어를 말할 방법이 없습니다.

迷茫

위 말씀하신 내용은 맞지만, 데이터가 작을 경우 아무거나 사용해도 좋습니다

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!