2009-12-04 12 views
2

요즘 일부 웹 크롤러 스크립트를 만들고 있지만 문제는 내 인터넷이 매우 느립니다. 그래서 나는 기계화 또는 urllib 사용하여 multithreading 가능한 webcrawler 또는 그렇게 생각했다. 경험이 있다면 누구나 정보를 공유합니다. 나는 구글에서 찾아 보았지만 많은 유용한 정보를 찾지 못했습니다. 미리 감사드립니다.스레드 지원이있는 파이썬 웹 크롤러

답변

3

this 스택 오버 플로우 스레드에 대한 좋은 예제가 있습니다.

+0

+1 좋은 샘플 코드입니다. 나는 그것을 나 자신을 사용할 것이라고 생각한다! – hughdbrown

+0

감사! 그것은 나를 위해 매우 유용한 정보 – paul

1

새로운 요청을 보내기 전에 결과가 도착할 때까지 기다릴 필요가 없으므로 여러 웹 사이트에 동시에 여러 요청을하면 결과가 확실히 향상됩니다.

그러나 스레딩은이를 수행하는 방법 중 하나 일 뿐이며 (나쁘지 만 추가 할 수도 있습니다.) 그것을 위해 스레딩을 사용하지 마십시오. 다른 요청을 보내기 전에 응답을 기다리지 마십시오! 그것을하기위한 스레딩이 필요 없습니다.

scrapy을 사용하는 것이 좋습니다. 빠른 상위 수준의 스크린 스크래핑 및 웹 크롤링 프레임 워크로 웹 사이트를 크롤링하고 구조화 된 데이터를 페이지에서 추출하는 데 사용됩니다. 이것은 파이썬으로 작성되었으며 동시에 (스레드를 사용하지 않고) 동시에 데이터를 가져 오는 많은 동시 연결을 만들 수 있습니다. 정말 빠릅니다. 또한 어떻게 구현되는지 확인할 수 있습니다.

+0

고마워! 기계화와 비교하면 어떨까요? 내 말은. 속도가 빠르다. 미리 감사드립니다. – paul

+0

@paul : 확실히 기계화하는 것보다 빠를 것입니다. 그것에 옳은 일을하는 것이 더 쉽습니다. – nosklo

3

Practical threaded programming with Python은 가치가 있습니다.

+0

멋진 리소스! :) 게다가, 거기에 어떤 작은 스크립트가 있습니까? 함수가 크롤링 된 웹 페이지의 결과를 저장합니다. – paul

+0

@paul, 나도 몰라, 가져온 페이지를 저장하는 데 필요한 것은 데모 목적으로, 피클이나 sqlite 또는 직접 dir/파일로 충분합니다. – sunqiang