2017-05-22 4 views
0

웹 사이트의 모든 이름을 Scrapy를 사용하여 https://www.internationaltelecomsweek.com에서 긁어 내고 싶습니다.웹 사이트를 긁어 낸 후 데이터가 없음

이것은 항목 파일에 있습니다.

import scrapy 
class ItwItem(scrapy.Item): 
    name = scrapy.Field() 

이것은 내 거미입니다.

import scrapy 
from itw.items import ItwItem 
class ItwSpider(scrapy.Spider): 

     name = 'itw' 

     allowed_domains = ['https://www.internationaltelecomsweek.com'] 

     start_urls = ['https://www.internationaltelecomsweek.com/this-year/companies-attending'] 

     def parse(self, response): 
     data= json.loads(response.body) 
     for i in data: 
     item["name"] = i["DisplayName"] 
     return item 

치료를 실행할 때 비어있는 CSV 파일 만받습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

참석자 목록이 동적으로 생성되고 각 참석자가 JSON 개체로 반환 된 것으로 보입니다.

거미가 실제로 읽을 수 있는지 확인하려면 scrapy shell에 사이트를로드하고 view(response)을 확인하십시오. 페이지에서 브라우저에서 참석자를 볼 수있는 곳이없는 것으로 나타납니다.

네트워크 탭을 검사하여 서버로 전달되는 요청을 확인하면 참석자 목록이 각각 this URL에서 JSON 개체로 전달되는 것을 확인할 수 있습니다. 당신이해야 할 것들

은 : JSON-객체를 산출 URL을 구문 분석 scrapy에 JSON을 사용하여 처리 :

import json 

data = json.loads(response.body) 
for i in data: 
    item["name"] = i["DisplayName"] 
+0

당신이지고 어떤 오류? – rongon

+0

들여 쓰기 오류 : 들여 쓰기가 바깥 쪽 들여 쓰기 레벨과 일치하지 않습니다. – Hasan

+0

들여 쓰기가 올바르지 않음을 나타냅니다. 게시 한 예제 코드는 parse-function 아래에 있어야합니다. 즉, 8 칸을 들여 써야합니다. – rongon

관련 문제