2016-08-19 3 views
-1

나는 피싱 및 페이크 Facebook 계정을 취급하는 회사에서 일하고있다. 나는 "사명"에 헌신하고 싶다. 페이스 북 페이지를 삭제 한 시점에 대해서는 수동적으로 모니터링 할 수 없습니다. 나는 웹 크롤러를 생각하고있다.하지만 페이스 북 페이지가 여전히 활성화되어 있는지 여부를 확인하기 위해 상수를 확인하는 특정 링크를 디자인하는 방법에 대해서는 궁금하다. 나는 이것이 의미가 있기를 바란다.웹 크롤러는 생각하지만 시작하는 방법은 무엇입니까?

답변

1

예! 크롤링을 사용할 수 있습니다. 그러나 가능한 한 빨리 원하면 크롤링이 가장 좋은 방법은 아닐 수도 있습니다. 관심이 있으시면 HTTPConnection을 사용하여이 작업을 수행하는 방법입니다. 또한 불행하게도 링크는 이고 완전히이 깨졌습니다. 이 반환하는 경우

당신이 다음 자세한 정보가 필요하면 당신은 가장 가능성, 링크가 깨진 경우 (따라서는에 아무 연결하지하는 의미)를 확인하기 위해 API 또는 웹 크롤러를 사용하는

from http.client import HTTPConnection # Importing HTTPConnection from http.client. 

conn = HTTPConnection('www.google.com') # Connecting to 'google.com' 

conn.request('HEAD', '/index.html') # Request data. 
res = conn.getresponse() # Now we get the data sent back. 

print(res.status, res.reason) # Finally print it. 

이있을 것이다 '302 Found'는 활성화 된 웹 페이지 여야합니다. 이 정보가 도움이 되었기를 바랍니다. 이것이 당신이 원하는 것이 아닌지 말해주세요. :)

감사합니다,

~ Coolq

0

당신은 그것을 응답 상태입니다 의해 계정이 활성화 여부를 알려줄 수있는 HTTP 요청을 보낼 수 있습니다, 파이썬은 몇 가지 표준 라이브러리를 가지고, 당신은 Internet Protocols and Support 살펴있을 수 있습니다 . 는 개인적으로 사용 요청을 추천합니다 :

import requests 
response = requests.get("http://facebook.com/account") 
if response.status_code == 302: # or 404 
    # the page is missing 

당신이 정말로 속도 나 성능에 대해 관심이 있다면, 당신은 파이썬 (gevent 같은) 다중 또는 비동기 I/O를 사용합니다. 크롤링에 초점이있는 경우

, 당신은 Scrapy에 대한 주요 장점 중 하나 주목 여기 Scrapy

를 살펴있을 수 있습니다 요청은 예정 비동기 적으로 처리 있습니다. 즉, Scrapy가 완료되지 않고 처리 될 때까지 기다리는 데 필요한 이 아니라면 다른 요청을하거나 을 보낼 수 있습니다. 이는 심지어 일부 요청이 실패하거나 처리하는 중에 오류가 발생하더라도 다른 요청이 계속 진행될 수 있다는 것을 의미하는 을 의미합니다.

0

https://www.quora.com/How-can-I-build-a-web-crawler-from-scratch/answer/Raghavendran-Balu 내가 크롤러에 대해 읽은 최고의 기사 중 하나입니다.

웹 크롤러는 간단한 페치 - 파스 - 추가 시스템처럼 들릴 수도 있지만 조심해! 당신은 복잡성을 지나치게 보일 것입니다. 구현 세부 사항보다 아키텍처에 더 초점을 맞추면 질문의 의도에서 벗어날 수 있습니다. 웹 규모 크롤러를 빌드하려면 크롤러의 아키텍처가 언어/프레임 워크의 선택보다 더 중요하기 때문에 이것이 필요하다고 생각합니다.

는 아키텍처 :

최소한의 크롤러는 적어도 이러한 구성 요소를 필요 :

  • HTTP의 가져 오기를 : 서버에서 웹 페이지를 검색 할 수 있습니다.

  • 추출기 : 앵커 링크와 같은 페이지에서 URL을 추출하기위한 최소 지원.

  • 중복 제거 프로그램 : 실수로 동일한 내용이 두 번 추출되지 않도록하십시오. 이것을 세트 기반 데이터 구조로 간주하십시오.

  • URL 프론티어 : 페치 및 구문 분석해야하는 URL의 우선 순위를 지정합니다. 우선 순위 큐로 고려하십시오.

  • Datastore : 검색 페이지와 URL 및 기타 메타 데이터를 저장합니다. 아키텍처에 대해 배울 수있는

좋은 출발점입니다

  1. Web Crawling
  2. Crawling the Web
  3. Mercator: A scalable, extensible Web crawler
  4. UbiCrawler: a scalable fully distributed web crawler
  5. IRLbot: Scaling to 6 billion pages and beyond
  6. (단일 단절 크롤러) 및 MultiCrawler: a pipelined architecture

프로그래밍 언어 : 당신이 편안 좋은 네트워크 라이브러리와 모든 높은 수준의 언어는 괜찮습니다. 저는 개인적으로 Python/Java를 선호합니다. 크롤러 프로젝트가 코드 크기면에서 커질 수 있으므로 디자인 제한 프로그래밍 언어로 개발하면 관리하기가 어려울 수 있습니다. 유닉스 명령과 셸 스크립트만으로 크롤러를 만들 수는 있지만 명백한 이유 때문에 크롤러를 만들지는 않을 것입니다.

프레임 워크/라이브러리 : 많은 프레임 워크가 이미 다른 답변에서 제안되었습니다. 성숙한, 대규모, 구성

  • Scrapy (파이썬) :

    1. 너치와 Heritrix (자바)

      : 기술적으로 스크레이퍼를하지만 크롤러를 구축하는 데 사용할 수 있습니다 여기 요약해야한다.

      https://github.com/scrapinghub/distributed-frontera - Scrapy의 URL 프런티어 및 데이터 저장소를 방문하여 대규모 크롤링을 실행할 수 있습니다.

    2. node.io (자바 스크립트) : Scraper. 당신이 자바 스크립트와 함께 살 준비가되어 있다면, 초기,하지만 고려 가치,. 파이썬

    : 파이썬에서 Introduction to web-crawling in Python

    코드를 참조하십시오 https://www.quora.com/How-can-I-build-a-web-crawler-from-scratch/answer/Rishi-Giri-1

    제안 확장 성이 분산 크롤링을 위해 :

    1. 비동기 모델에 대한 이동하는 것이 좋습니다, 주어진를 문제의 본질.
    2. 예 : 데이터 저장을위한 분산 데이터베이스를 선택하십시오. Hbase.
    3. redis와 같은 분산 데이터 구조는 URL 경계 및 중복 탐지기에 대해서도 고려할 가치가 있습니다. 자세한 내용을 보려면 다음 사이트를 방문

    : https://www.quora.com/How-can-I-build-a-web-crawler-from-scratch

    참조 :

    1. Olston, C., & Najork, M. (2010). 웹 크롤링. 정보 검색의 기초와 동향, 4 (3), 175-246.

    2. Pant, G., Srinivasan, P., & Menczer, F. (2004). 웹 크롤링. Web Dynamics (pp. 153-177). Springer Berlin Heidelberg.

    3. Heydon, A., & Najork, M. (1999). Mercator : 확장 가능하고 확장 가능한 웹 크롤러. World Wide Web, 2 (4), 219-229.

    4. Boldi, P., Codenotti, B., Santini, M., & Vigna, S. (2004). Ubicrawler : 확장 가능한 완전히 분산 된 웹 크롤러입니다. 소프트웨어 : Practice and Experience, 34 (8), 711-726.

    5. Lee, H. T., Leonard, D., Wang, X., & Loguinov, D. (2009). IRLbot : 60 억 페이지 이상으로 확장. 웹상의 ACM 트랜잭션 (TWEB), 3 (3), 8.

    6. Harth, A., Umbrich, J., & Decker, S. (2006). 멀티 크롤러 : 시맨틱 웹 데이터를 크롤링하고 인덱싱하기위한 파이프 라이닝 된 아키텍처입니다. 시맨틱 웹 -ISWC 2006 (pp. 258-271). Springer Berlin Heidelberg.

  • 관련 문제