问题描述
我是第一次接触Scrapy框架。在Scrapy中爬取JSON文件中的数据时,用print检测发现为空,不知道是什么回事,请大神指教!
问题出现的环境背景及自己尝试过哪些方法
Python的环境是Python 3.7。尝试网上说的response.text()无效。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
import scrapy
import json
from scrapy.http import Request
from urllib import parse
from MovieSpider.MovieSpider.items import MoviespiderItem
class MovieSpider(scrapy.Spider):
name = 'MovieSpider'
allowed_domains = ['movie.douban.com']
start_urls = ['https://movie.douban.com/j/search_subjects?type=movie&tag=%E5%86%B7%E9%97%A8%E4%BD%B3%E7%89%87&sort=rank&page_limit=20&page_start=0']
def parse(self, response):
list = json.loads(response.text())
print(list)
你期待的结果是什么?实际看到的错误信息又是什么?
无报错,但是输出为空,求各位大神指教!
试了一下:
DEBUG: Crawled (403) <GET https://movie.douban.com/robo...; (referer: None)
DEBUG: Crawled (403) <GET https://movie.douban.com/j/se...;tag=%E5%86%B7%E9%97%A8%E4%BD%B3%E7%89%87&sort=rank&page_limit=20&page_start=0> (referer: None)
所以需要在setting里面添加User-Agent,以及把ROBOTSTXT_OBEY改为False