2016-12-18 1 views
0

나는 작은 데이터를 긁어 모으는 프로젝트에서 일하고 있으며 웹 사이트 https://www.germanystartupjobs.com/에서 모든 일자리를 얻고 싶습니다. 작업은 POST 요청으로로드됩니다. 개별 페이지에 가서 POST 요청의 cURL을 받고 터미널에서 재생하고 JSON을 얻을 수 있습니다. 나는 다음과 같은 형식을 얻는 JSON은 모두 내가 html tag와 내가 할 수있는 내부에 무엇을해야 할 지금, 다른 페이지에 대한 cURL 응답을 얻으려면 어떻게해야합니까?

enter image description here

를 (I 내가 Firefox network tab에서 무엇을 얻을, 컬도 터미널에서 동일한 제공 제공) 코드 조각을 사용하여 그 각각의 페이지에 href의 이상 내가 scrapy 사용

html = data['html'] 
    selector = scrapy.Selector(text=data['html'], type="html") 
    hrefs = selector.xpath('//a/@href').extract() 
    for href in hrefs: 
     // some code 

를 반복하고, 규칙은 페이지를 긁어에 대한 start_urls 목록을 사용하는 것입니다 후, 나는 내부의 모든 코드를 넣을 수 있습니다 parse은 내가 좋아하는 방식으로 작동합니다.

다른 문제가 있습니다. 각각의 웹 사이트에는 17 페이지가 있으며 첫 번째 페이지의 링크는 https://www.germanystartupjobs.com/이고 나머지 페이지는 동일한 링크 https://www.germanystartupjobs.com/#s=1입니다. 그래서, 당신은 링크를 기반으로 어떤 페이지인지 정말로 알 수 없습니다 : 3 또는 9 일 수 있습니다. 나는 알지 못합니다. https://www.germanystartupjobs.com/https://www.germanystartupjobs.com/#s=1 :

질문을 요약하면, 나는 내가 단지 2 개 웹 링크가 파이썬을 사용하여 모든 17 개 페이지에 대한이 html = data['html'] 값을 얻을 것인가?

답변

1

네트워크 패널에서 POST- 탭을 보면 요청에 대한 다른 매개 변수가 표시되어야합니다. 현재 사용중인 페이지가이 탭에 있습니다.

귀하의 요청에이 매개 변수를 전달할 수 있습니다 (예 : yield scrapy.Request). 페이지 번호를 반복하여 요청에 전달하십시오. 예를 들어 하나의 요청을하면 JSON 객체에서 최대 페이지 번호 (max_num_pages)를 얻은 다음 요청할 때까지 점진적으로 페이지 번호를 전달할 수 있습니다.

요청시 documentation을 확인하십시오.

+0

정보 주셔서 감사합니다. 나는 곧 당신에게 다시 연락하려고 노력할 것이다. 이 문제가 해결되면이 대답을 수락합니다. 좋은 대답 인 것 같아서 지금 투표하셨습니다. – Chak

+0

안녕하세요, 모든 페이지에서 반복 코드를 제공해 주시겠습니까? 나는 여전히 제대로 작동하지 못했습니다. – Chak

+0

어쨌든, 여기에 당신의 대답을 받아들입니다. – Chak

관련 문제