pycharm写scrapy遇到的问题

这篇具有很好参考价值的文章主要介绍了pycharm写scrapy遇到的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

居然还有万能的pycharm解决不了的python程序???

创建scrapy

由于PyCharm中没有直接创建Scrapy项目的选项,所以使用命令行创建一个项目

安装scrapy

pip install scrapy

查看版本
能看版本就是安装成功

scrapy version

pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

创建一个scrapy项目

scrapy startproject yourprojectname

pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

根据提示创建爬虫

cd asd
scrapy genspider example example.com

这样就创建成功了
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

难受的开始

使用PyCharm打开这个项目,却发现爬虫中的parse函数是灰色的框
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

Signature of method 'ExampleSpider.parse()' does not match signature of the base method in class 'Spider'

看一下父类中的parse函数是如何定义的,因为我们是重写父类的方法,在pycharm点这个就行了
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

进到父类可以看到有一个**kwargs参数
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

**kwargs参数加入到自己的爬虫的parse上面去,灰框就不见了,总算看着不难受了
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

指定类型

但是还有一个问题,灰框只是看着难受,没有代码提示才是真的难受,.不出来谁懂啊
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

运行一下打印他的类型看看,可以看到是scrapy.http.response.html.HtmlResponse类型

scrapy crawl example # example是你的爬虫名字,也就是类里面的name属性

pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide
如果不想看到那么多烦人的日志信息就在settings.py中加上日志等级

LOG_LEVEL = 'WARNING'

pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

重新运行看看效果,世界安静
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

既然知道是什么类型那就给他指定类型就行了

from scrapy.http.response import Response

def parse(self, response: Response, **kwargs):

.出来了,舒服了
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

修改模板并指定使用

终于可以看到有了正常的代码提示了,但是总不能每次都这样写吧,查看genspider命令,发现-t参数可以使用自定义模板
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

可以看到正常创建爬虫是使用basic这个模板
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

在你的解释器路径下找到该文件夹

\Python39\Lib\site-packages\scrapy\templates\spiders

可以在该路径下找到这个模板文件
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

如果是用pycharm还可以这样操作更快一点,而且直接定位到解释器位置以免你用的是虚拟环境路径不一样

导入scrapy包然后按住键盘的ctrl键然后用鼠标左键点一下就可以跳过去他的源代码
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

点击后跳转到__init__.py,其实跳哪个不重要,只要属于scrapy这个包就好了
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

然后就可以找到模板文件了
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

这样就可以看见他的内容了,也可以右键打开他的文件夹
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

我选择复制一份出来(你也可以在上面直接改那就不用使用genspider -t指定模板了)
mytemplate.tmpl 你想叫什么名字都可以

import scrapy
from scrapy.http.response import Response


class $classname(scrapy.Spider):
    name = "$name"
    allowed_domains = ["$domain"]
    start_urls = ["$url"]

    def parse(self, response: Response, **kwargs):
        pass

然后就可以使用自定义的模板创建爬虫

# scrapy genspider -t 模板名称 爬虫名称 域名
 scrapy genspider -t mytemplate test test.com

可以看见新建的爬虫没有一点问题,舒服的代码提示
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

注意模板名称必须写对,不然就会报错
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

如果你忘了你的模板名称可以安装提示查看

scrapy genspider --list

pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

运行scrapy

前面提到的启动scrapy需要在终端使用以下命令

scrapy crawl example # example是你的爬虫名字,也就是类里面的name属性

这么麻烦?我都用万能的pycharm了就没有简单的办法让我运行和断点调试吗?
我就能不能用右键运行或调试?万能的ctrl + shift + F10吗?
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide
那肯定是可以的啊

在项目根目录也就scrapy.cfg同一层,settings.py的上一层创建main.py(你想叫啥都行)文件写入以下代码

main.py

from scrapy.cmdline import execute
import os
import sys

if __name__ == '__main__':
    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
    execute(['scrapy', 'crawl', 'example'])  # 把最后的参数换成你自己的爬虫名字

pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

直接运行该文件就可以运行scrapy
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

运行过一次后面就可以用CTRL + F5
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide

也可以使用DEBUG调试,可以看到已经停在断点处了
pycharm写scrapy遇到的问题,爬虫,bug,pycharm,scrapy,ide文章来源地址https://www.toymoban.com/news/detail-621959.html

到了这里,关于pycharm写scrapy遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue 3 开发中遇到的问题及解决方案(fix bug)

    开发环境:mac系统,node版本: 16.15.0 解决方案1 升级或降级(版本) 思路 Vue和pinia 版本不兼容;Vue 的版本为 “vue”: “^3.2.47”, pinia的版本为 “pinia”: “^2.0.36” 解决过程 升高pinia的版本 “pinia”: “^2.0.36”, ==》 “pinia”: “^2.0.36”, 先删除pinia npm uni pinia 再重新安装 y

    2024年02月04日
    浏览(52)
  • 解决问题:PyCharm / IDEA / JetBrains IDEs中 Github Copilot 插件无法使用对话/Chat功能

    在Pycharm里装了Github Copilot 插件,但发现只能进行代码补全,没法像ChatGPT一样聊天,CSDN上搜了半天居然没人提出这个问题,于是在Copilot的Github主页上到处寻找答案。 发现这个功能目前还在内测阶段,如果想要使用的话, 需要先去官网申请加入等待队列 !!! 官网地址如下

    2024年02月04日
    浏览(88)
  • 卸载pycharm时遇到问题:pycharm uninstall hasn‘t detected folder

    Pycharm Professional(2022.3.2)无法通过以下方式自行卸载: Windows设置卸载实用程序 在 C:Program FilesJetBrainsPyCharm 2022.3.2bin 中运行uninstall.exe 这个问题是由于PyCharm安装中丢失了一个文件造成的。请尝试以下powershell命令在该位置创建一个具有适当名称的空文件: 用管理员权限打开

    2024年02月11日
    浏览(39)
  • Pycharm中安装jupyter 以及一些会遇到的问题

    1、确保电脑安装了 anaconda 和jupyter notebook  2、在命令行 启动jupyter Notebook (启动后不要关闭这个命令窗口) 命令:juputer Notebook 成功运行后的网页界面:  3、打开Pycharm 创建新的项目 (注意是Conda) 4、 创建一个jupyter notebook的文件 5、 更改配置: 找到刚才 jupyter notebook 命令窗

    2024年02月06日
    浏览(45)
  • 通过Pycharm安装包以及Matplotlib包安装遇到的各种问题

    提示: 在系统终端中安装包(例如系统终端中通过pip安装包),在Pycharm中是不能直接使用的。因此,推荐如下两种方法安装包,尤其推荐方法2。如果没有Pycharm,Pycharm下载,选择社区版就够用了。Pycharm历史版本下载。 第一步:打开pycharm软件; 第二步:选择菜单栏File →

    2024年02月06日
    浏览(51)
  • 当在PyCharm控制台中遇到中文乱码问题时,如何解决?

    解决办法 : 中文乱码问题通常源于编码设置不正确或控制台字体不支持中文字符集。以下是解决这个问题的一些步骤: 1. 更改编码设置 确保您的Python文件中的字符编码与您的控制台编码一致。在Python文件的开头,可以添加以下注释行,指定文件的编码格式: 这将确保Pyth

    2024年02月06日
    浏览(54)
  • PyCharm搭建Scrapy环境

    1.1、Scrapy简介 Scrapy是一个基于Python的开源网络爬虫框架,用于从网页中提取数据。它提供了一套高效、灵活和可扩展的工具,可以帮助开发者快速构建和部署爬虫程序 Scrapy是一个由Python语言开发的适用爬取网站数据、提取结构性数据的Web应用程序框架。主要用于数据挖掘、

    2024年02月07日
    浏览(20)
  • Python爬虫:js逆向调式操作及调式中遇到debugger问题

    1. 前言 本篇博客主要讲解js逆向调式操作及调式中遇到debugger问题,内容参考自网上的一些视频讲解结合自己所做过的爬虫测试,觉得小编总结的还不错的读者记得点赞支持一下( 内容仅供学习使用 )。 2. js逆向调式操作 2.1 DOM事件断点 比如虎牙直播登录操作,想快速找到找到

    2024年02月13日
    浏览(48)
  • 什么是Python爬虫分布式架构,可能遇到哪些问题,如何解决

    目录 什么是Python爬虫分布式架构 1. 调度中心(Scheduler): 2. 爬虫节点(Crawler Node): 3. 数据存储(Data Storage): 4. 反爬虫处理(Anti-Scraping): 5. 分布式通信和协调(Communication and Coordination): Python爬虫分布式架构代码示例 1. 调度中心(scheduler.py): 2. 爬虫节点(crawl

    2024年02月10日
    浏览(39)
  • 爬虫---scrapy爬虫框架(详细+实战)

    ​ 活动地址:CSDN21天学习挑战赛 1、基本功能 Scrapy 是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指

    2023年04月22日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包