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

最近一直在学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’)

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

你可能感兴趣的:(这是一篇来记录我的爬取小说过程中出现错误的文章)