2017-12-20 4 views
0

내가 PC의 부품을 사용하는 웹 사이트에서 데이터를 가져 오기 위해 노력하고있어 나는 그 페이지에 3500 부 이상이이 링크를 가지고, 문제는 그 나는 깨끗한 링크를 사용하는 경우 : https://www.komplett.no/search?q=pc파이썬으로 웹 스크랩 | 제한 객체

을 그것은 스크롤하기 전에 거기에있는 데이터 만 가져오고 새 항목을로드합니다. https://www.komplett.no/search?q=pc&hits=1000

지금은 1000 개 이상의 제품에서 모든 정보를 얻을 수 있지만 스크립트 단지, 내가 돈을 일하고 싶어하지 않기 때문에 것을 이상 갈 수 없어 :

그래서 나는 다음과 같이 편집 링크를했다 오류 또는 아무것도 얻지 못했습니다. 나는 그만큼 많은 데이터를 판매하지 않습니다.

내가 원하는 제품의 수를 제한하지 않고 구멍 페이지를 통과하는 방법을 원합니다. 그것은 당신이 아래로 스크롤 할 때 보이는

24 개 새 항목이 페이지에 추가가 있습니다 : 여기

답변

0

내가이 웹 스크래핑 작업에 접근 할 방법입니다. pc으로 필터링 할 때 3919 개의 결과가 표시되므로 PhantomJS와 같은 헤드리스 브라우저/자바 스크립트 엔진을 사용하여 페이지 하단으로 스크롤 한 다음 몇 초 후에 새로운 결과가로드 될 때까지 기다렸다가 반복하십시오. 프로세스 수는 3919/24 회입니다. 이것은 당신이 루프를 완료 한 후에는 PhantomJS

from selenium import webdriver 

driver = webdriver.PhantomJS() 
driver.get('https://www.komplett.no/search?q=pc') 
num_pages = int((3919/24) + 1) 
for _ in range(num_pages): 
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
    time.sleep(3) 

html = driver.page_source.encode('utf-8') 

같은 webdriver를 설치해야 작동하려면 현재 DOM 트리로드의 HTML을 캡처 .driver.page_source.encode('utf-8')를 호출하고 당신에게 나머지 작업을 수행 할 수 있습니다 해당 데이터로 웹 스크래핑.

btw, 얼마 전에 PC 스크래핑 프로젝트를 수행했습니다. 체크 아웃하려면 here's the link입니다.

+0

https://www.komplett.no/search?q=pc&hits=1000에서 시작하여 시간을 절약 할 수 있습니다. – briancaffey

+0

@EvenLauvrak 안녕하세요. 솔루션이 효과가 있다면 대답을 승인으로 표시 할 수 있습니까? 그렇지 않으면 더 많은 도움이 필요하면 알려주세요. 감사! – briancaffey

+0

그래, 나는 그것을 받아 들일 것이다. Il은 당신이 무엇이라도 더 많이 theres를 알고 있는지에 관해 알렸다. –