Scrapy报错UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 175:

今天我自学了scrapy框架,scrapy框架是Python爬虫的一种,我们可以通过

    pip install scrapy

来安装它。再用

    scrapy startproject 项目名 

来创建一个项目文件,在创建的文件中有一个与文件同名的文件和一个scrapy.cfg文件,其中scrapy.cfg为项目得配置文件

在同名文件下有一个spiders文件,它用来装实现爬虫的代码,同名文件下还有items.py、middlewares.py、pipelines.py和settings.py四个文件。其中

item.py是项目的目标文件

middlewares.py是中间键文件(不懂,我还没学)

pipelines.py是管道文件,用来保存爬取到的信息

settings.py文件是项目的设置文件

好了,步入正题,今天我在调试程序 的时候突然报错:

 

 
Traceback (most recent call last):
  File "c:\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Python36\Scripts\scrapy.exe\__main__.py", line 9, in 
  File "c:\python36\lib\site-packages\scrapy\cmdline.py", line 110, in execute
    settings = get_project_settings()
  File "c:\python36\lib\site-packages\scrapy\utils\project.py", line 63, in get_project_settings
    init_env(project)
  File "c:\python36\lib\site-packages\scrapy\utils\conf.py", line 84, in init_env
    cfg = get_config()
  File "c:\python36\lib\site-packages\scrapy\utils\conf.py", line 98, in get_config
    cfg.read(sources)
  File "c:\python36\lib\configparser.py", line 697, in read
    self._read(fp, filename)
  File "c:\python36\lib\configparser.py", line 1015, in _read
    for lineno, line in enumerate(fp, start=1):
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 175: illegal multibyte sequence

我找了好多解决的方法都不是对应我的问题的,我就在想,刚才我都做了什么不该干的事情,于是我想到了,gbk是支持中文编码,我因为英语不好所以刚才在scrapy.cfg文件里加入了中文注解:

# Automatically created by: scrapy startproject
#
# For more information about the [deploy] section see:
# https://scrapyd.readthedocs.io/en/latest/deploy.html
#项目的配置文件
[settings]
default = ITcase.settings

[deploy]
#url = http://localhost:6800/
project = ITcase

于是,我删除掉了中文注解,于是好用了。我感觉只有我会犯这么愚蠢的问题,但是我希望能把它分享出来。

还有就是我第一次运行的时候爬取不到网页源码,之后改了一处错误:

第一处是:settings.py下的ROBOTSTXT_OBEY要置为False,不然又的网站设置不允许爬取你的爬虫就真的不会去爬了,默认是置为True的(就行学校厕所里的禁止吸烟的牌子)

ROBOTSTXT_OBEY = False

本人第一次编写技术博客,是一个技术小白,如果那里说的有错误,希望大家能够提醒我,感谢感谢。

 

 

 

你可能感兴趣的:(scrapy)