Python Scrapy遇到的问题(二)

目录

Scrapy xx.py文件中import出错的问题

Scrapy开启多条管道下载时的问题 

(一) settings中管道设置名错误

(二)下载图片时看不到图片/找不到存放图片的文件目录

Pycharm常用快捷键整理


Scrapy xx.py文件中import出错的问题

问题描述:

ImportError: cannot import name 'ScrapyDangdangItem' from 'scrapy_dangdang'

(D:\pythonProject\pachong\scrapy_dangdang\scrapy_dangdang\__init__.py)

如图:

解决:  from 项目名.items

报错的版本是:

改成了:(忽略这个ScrapyDangdangItem报错,这里是编译器问题报编译错误,不影响运行)

就是在项目名后加.items 

成功运行:

Scrapy开启多条管道下载时的问题 

(一) settings中管道设置名错误

问题描述:

NameError: Module 'scrapy_dangdang.pipelines' doesn't define any object named 'ScrapyDangdangDownloadPipeline....

解决:这种一般就是pipelines.py文件中的类名和settings.py文件中的ITEM_PIPLINES中的 SomePipeline名称不一样导致的,仔细检查一下。

(二)下载图片时看不到图片/找不到存放图片的文件目录

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter

class ScrapyDangdangPipeline:
    # 在爬虫文件执行之前执行的方法
    def open_spider(self,spider):
        self.fp = open('book.json','w',encoding='utf-8')

    # items就是yield后面的book对象
    def process_item(self, item, spider):
        self.fp.write(str(item))
        return item

    # 在爬虫文件执行完之后执行的方法
    def close_spider(self,spider):
        self.fp.close()

import urllib.request
class ScrapyDangDangDownloadPipeline:
    def process_item(self, item, spider):
        url = 'http:' + item.get('src')
        filename = './books/' + item.get('name') + '.jpg'
        urllib.request.urlretrieve(url=url,filename=filename)
        return item

可以看到我想将图片下载到/books/这个文件夹下,但运行之后,book.json文件中有内容,却看不见books文件夹,也看不到下载的文件

解决方法:在 spiders 目录下新建一个books文件夹,再运行。成功!

Pycharm常用快捷键整理

ctrl+/: 注释(单行或者批量)
ctrl+f:搜索
ctrl+shift+f:全局搜索
ctrl+alt+L:格式代码(整理格式)

光标
ctrl+alt+enter:向上插入
shift+enter:向下插入
 

操作代码
ctrl+d:复制粘贴本行
选中内容:tab:进行退格
                  shift+tab:反向退格
alt+shift+上下键:选中代码移动
ctrl+shift+上下键:可以移动当前方法体,如果移动一行代码只能在代码体内移动
ctrl+shift+U:代码大小写
ctrl+shift+enter:补全代码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值