无名商城论坛

搜索
查看: 233|回复: 0

[其他技术] 【冷漠】Python学习心得(四)

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 17:31:53 | 显示全部楼层 |阅读模式

大家好,这里稚悠,觉得好的话就点个关注吧[玫瑰]
跟着橡皮擦老师的爬虫课走到第30课,终于开始接触scrapy框架了。我的练习项目是橡皮擦的第31课,爬取kr36的数据。源课程地址如下:
https://cloud.tencent.com/developer/article/1397845
橡皮擦老师已经给出了大部分的功能代码,我主要把调试的过程中的几个坑填一下,另外给出可以完整运行的项目示例。

1、scrapy项目安装中的问题

scrapy的安装我是根据scrapy中文指导手册进行的
https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html#scrapy
在手册中,提到要在python2.7的环境下安装,我自行百度了一下,应该是python3.7对框架的有问题,但是我没有继续研究下去,希望有厉害的小伙伴能够整理一套3.7环境下完美运行scrapy的方法
按照指导,切换环境为python2.7,完成scrapy的安装。

2、代码调试过程的问题

2.1 在橡皮擦的代码中,pipeline保存数据到本地时,打开文件使用的方法是open(store_file,“a+”,store_file,“a+”,newline="",encoding=“utf_8_sig”)
运行时报错如下:
搜索答案,发现python2.7的open函数不支持4个参数,将后面两个参数删除掉之后排除该问题
2.2 橡皮擦的代码中没有导入item类
运行时报错如下:
在爬虫类中导入item类之后,报错排除
from kr36.items import Kr36Item
2.3 由于python2.7的限制,没有按照橡皮擦加载json响应时转换成unicode的写法,通过加入打印发现在pipeline存储数据的时候出现了编码错误
通过百度,发现要在pipeline中设置默认编码
加入后可以正确运行
完整的可运行项目地址
https://github.com/daniuyan/learngit/tree/master/kr36
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表