2013-06-28 2 views
2

약 1000-2000 개의 다른 레스토랑 웹 사이트에서 연락처 정보를 긁어 내고 싶습니다. 거의 모든 사람들이 홈페이지 또는 일종의 "연락처"페이지에서 연락처 정보를 가지고 있지만 두 웹 사이트가 정확히 동일하지 않습니다 (즉, 악용 할 공통 패턴이 없음). Python 스크립트를 페이지의 특정 요소 (예 : 스크립트가 구조적으로 불가지론 할 필요가 있습니다. 각 사이트마다 고유 한 HTML 구조가 있기 때문에 확실하게 지정하지 않고도 이러한 사이트에서 이메일/전화 번호 정보를 확실하게 긁을 수 있습니다. 예를 들어 "연락처"에 연락처 정보가 있습니다 div).Python을 사용하여 여러 고유 사이트에서 연락 정보 긁기

100 % 효과가있는 프로그램을 작성할 방법이 없다는 것을 알고 있습니다. 히트 율을 극대화하고 싶습니다.

시작에 대한 안내, 읽을 내용 - 많은 도움이 될 것입니다.

감사합니다.

답변

1

파이썬의 정규 표현식 모듈을 살펴보십시오. 당신은 같은 간단한 식을 작성할 수 있습니다

re.search(u"\(\d{3}\) \d{3}-\d{4}",string) 

및 (US 번호에 대한) 표준 형식의 전화 번호 문자열을 찾을 수 있습니다. 횡설수설처럼 보일 수도 있지만 웹을 한 번 끝내면 더 쉽게 긁힐 수 있습니다. 나는 또한 매우 당신이 너무 많은 동적 웹 페이지로 실행하면된다고 웹에 대한 셀레늄을 추천 할 것입니다

http://www.tutorialspoint.com/python/python_reg_expressions.htm

:

https://pypi.python.org/pypi/selenium

+0

좋아요, 감사 여기 괜찮은 소개 튜토리얼입니다. 홈페이지에 이메일/전화 일치 항목이없는 경우 사이트의 연락처 페이지를 찾는 가장 좋은 방법은 무엇입니까? 페이지에서 "연락처"가있는 링크를 찾으십시오. 2000 개의 다른 사이트에서이 스크립트를 실행하려고하므로 모든 앵커 요소를 반드시 검색하지 않아야합니다 (단 한 가지 방법이 아니라면). 시간을 절약하기 위해/프로그램을에서 지우려면 충돌. 어떤 아이디어? – sundance

+0

바라건대 그들 대부분은 당신이 말했듯이 홈 페이지에 그것들을 가지고있을 것입니다 (그들은 어리석은 일이 될 것입니다). 먼저 홈 페이지 만 검색 한 다음 링크 텍스트에서 "연락처"가있는 페이지 (BeautifulSoup를 사용하여 가져올 수 있음)를 검색하는 것이 좋습니다. 이후, 당신은 개별적으로 문제 사이트를 다룰 수 있습니다. 추측해야만한다면 100 개 정도면됩니다. – ejk314

1

대부분의 국가에서 전화 번호는 간단한 정규식과 일치 할 수있는 잘 정의 된 패턴 중 하나를 따르며 전자 메일 주소는 국제적으로 인정되는 형식을 취합니다. 간단히 홈페이지, 연락처 또는 문의 페이지를 긁어 분석 한 다음 구문 분석합니다. 정규 표현식을 사용하면 90 % 이상의 정확도를 쉽게 달성 할 수 있습니다.

물론 옐로우 페이지 웹 사이트에 해당하는 지역에 레스토랑 이름과 마을을 제출하기 만하면됩니다.

관련 문제