在用pyspider爬虫运行代码后出现:
HTTP 599: SSL certificate problem: unable to get local issuer certificate错误
错误原因:
这是因为在请求https开头的网址时,SSL验证错误,证书有问题
解决方法:
在self.crawl(url,callback=self.index_page,validate_cert=False)
Python print时,遇到Unicode编码错误的情况,可能是在windows下,默认打开文件格式会被转为gbk格式,导致出错的情况
有两种解决方式:
1.修改标准输出流的编码方式
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
或者
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
2.修改控制台编码
在命令行下输入 chcp
输出显示:活动代码页: 936
表示当前的编码是gbk
chcp 65001
表示转换为utf8
scrapy提示DEBUG:Filtered offsite request to
转载:https://blog.youkuaiyun.com/lvqiuyao/article/details/76841663
在使用scrapy爬取数据时,只可以执行parse函数中的内容,通过yield scrapy.Request(url,callback=self.detail)方式无法跳转到detail函数,导致显示详细信息的url不能被解析。
通过查看log,发现提示如下:
DEBUG:Filtered offsite request to 域名
通过查资料,发现request url的域名不能和文件中自己配置的allowed_domains不一致,否则会被过滤掉。
解决办法可以停用过滤功能,如下所示:
yield scrapy.Request(url,callback=self.detail,dont_filter=True)