这是一篇来记录我的爬取小说过程中出现错误的文章

最近一直在学scrapy,感觉很神奇,之前照着网上的爬取新浪网页的新闻,而后自己写了个简单的爬取代码,主要爬取我近些日子看的小说的内容,github代码连接,这篇文章主要记录我在爬取过程中出现的问题及解决方法

  1. ValueError: Missing scheme in request url: xxxxxx
    主要是代码有一段在提取章节网址时,提取的是相对地址,致使网址地址不完整,导致网址出错。
    解决办法:在提取网址之后引用时,加上前缀,变为绝对地址就解决了。
  2. ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
    这个问题是在xpath中出现中文编码问题,我的原代码为* name = response.xpath(’//div[@class=“con_top”]/a[@title=“正道潜龙”]/text()’).extract_first()*
    修改之后加个u即可* name = response.xpath(u’//div[@class=“con_top”]/a[@title=“正道潜龙”]/text()’).extract_first()*
  3. UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128)
    出现这个问题,原因就是python的str默认是ascii编码,和unicode编码冲突,就会报这个标题错误(我用scrapy的python版本是2.7)
    解决方法:加上以下代码
    import sys
    reload(sys)
    sys.setdefaultencoding(‘utf-8’)
  4. IOError: [Errno 22] invalid mode (‘w’) or filename
    因为是Python中的字符串的大概分为为str和Unicode两种形式,其中str常用的编码类型为utf-8,gb2312,gbk等等,Python使用Unicode作为编码的基础类型,open(filename, ‘w’)这个方法中,filename这个参数必须是Unicode编码的参数。
    解决方法:原代码* fp = open(curPath+’/’+file_name,‘w’)*
    修改后 fp = open(curPath+’/’+file_name.decode(‘utf-8’),‘w’)

以上就是我在爬取小说过程中遇到的问题,我还会继续学习的,大家一起努力,加油!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值