를 사용하여 내 scrapy 거미에 다음 코드를했다 :처리 JSON 응답 scrapy
def parse(self, response):
jsonresponse = json.loads(response.body_as_unicode())
htmldata = jsonresponse["html"]
for sel in htmldata.xpath('//li/li'):
-- more xpath codes --
yield item
하지만 난이 오류 데 : json으로 응답을 확인한 후
raise ValueError("No JSON object could be decoded")
exceptions.ValueError: No JSON object could be decoded
을, 나는 약 **<!--WPJM-->**
을 발견 이 오류의 원인이되는 **<!--WPJM_END-->**
!
<!--WPJM-->{"found_jobs":true,"html":"<html code>","max_num_pages":3}<!--WPJM_END-->
은 어떻게 보지 않고 내 scrapy을 구문 분석 할 - WPJM--와 -! WPJM_END-- 코드를?
편집 :
파일 "/home/muhammad/Projects/project/project/spiders/crawler.py", 라인 (150), 구문 분석 에 htmldata에서 SEL을 위해 :이 내가 가지고있는 오류입니다. 수동으로 replace()
를 사용하여 '유니 코드'개체가 어떤 속성 'XPath는'가장 쉬운 방법은 주석 태그를 제거하는 것입니다
def parse(self, response):
rawdata = response.body_as_unicode()
jsondata = rawdata.replace('<!--WPJM-->', '').replace('<!--WPJM_END-->', '')
# print jsondata # For debugging
# pass
data = json.loads(jsondata)
htmldata = data["html"]
# print htmldata # For debugging
# pass
for sel in htmldata.xpath('//li'):
item = ProjectjomkerjaItem()
item['title'] = sel.xpath('a/div[@class="position"]/div[@id="job-title-job-listing"]/strong/text()').extract()
item['company'] = sel.xpath('a/div[@class="position"]/div[@class="company"]/strong/text()').extract()
item['link'] = sel.xpath('a/@href').extract()
의 Content-Type :
또는 더 나은 옵션을 것이 XPath에 의해
text()
얻을 수하는 응용 프로그램/난 당신이 한 두 번째 어떤 옵션을 알고 희망 – muhammadn