zoukankan      html  css  js  c++  java
  • 亲测——pycharm下运行第一个scrapy项目 ©seven_clear

        最近在学习scrapy,就想着用pycharm调试,但不知道怎么弄,从网上搜了很多方法,这里总结一个我试成功了的。

        首先当然是安装scrapy,安装教程什么的网上一大堆,这里推荐一个详细的:http://blog.csdn.net/php_fly/article/details/19364913,里面有安的东西的资源。有几点需要注意一下:1)Python配置环境变量最好把Scripts路径也加上,如我的是D:Python27Scripts。因为装scrapy要用到;2)装zope.interface-4.0.5-py2.7-win32.egg时打开方式选Scripts路径下的easy_install.exe。其他的应该没问题了。

        大致流程是:先用命令行新建一个scrapy项目->用pycharm打开该项目->编写自己的爬虫代码->运行。

        找到你想建项目的目录,然后在该目录下启动cmd,输入scrapy startproject name(自定义的项目名),没意外的话你会在你的目录下看到name文件夹,这就是你的scrapy项目,打开该文件夹,会有一个同名文件夹和scrapy.cfg文件。©seven_clear

        然后用pycharm打开该项目,创建自己的爬虫,具体可参考:http://scrapy-chs.readthedocs.io/zh_CN/latest/intro/tutorial.html,不过我安的是0.20.2版本,在定义自己的爬虫类时代码有些许不同:

    # coding:utf-8
    from scrapy.spider import BaseSpider
    
    class DmozSpider(BaseSpider):
        name = "dmoz"
        allowed_domains = ["dmoz.org"]
        start_urls = [
            "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
            "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
        ]
    
        def parse(self, response):
            filename = response.url.split("/")[-2]
            open(filename, 'wb').write(response.body)

    import的是BaseSpider,其他的都是文档上的代码。编辑items.py时把自己的item类写在原类下面:

    # Define here the models for your scraped items
    #
    # See documentation in:
    # http://doc.scrapy.org/en/latest/topics/items.html
    
    from scrapy.item import Item, Field
    
    class TestscrapyItem(Item):
        # define the fields for your item here like:
        # name = Field()
        pass
    
    
    class DmozItem(Item):
        title = Field()
        link = Field()
        desc = Field()  

        好了,现在就差运行了,只需要写一个命令行即可,为了方便,写进一个Python文件中,名字自定义(可以命名为main),和scrapy.cfg在同级目录下,内容就两行:

    # coding:utf-8
    
    from scrapy import cmdline
    
    
    cmdline.execute("scrapy crawl dmoz".split())

    dmoz是爬虫的名字,可变。这样运行我们的main.py就可以了。怎么样,简单吧,有些事要自己亲自做过,回头才发现真的很简单。©seven_clear

  • 相关阅读:
    spring源码-BeanFactoryPostProcessor-3.2
    web之前端获取上传图片并展示
    spring源码-增强容器xml解析-3.1
    spring源码-bean之增强初始化-3
    spring源码-bean之加载-2
    spring源码-bean之初始化-1
    spring源码-开篇
    java之扫描包里面的class文件
    vuex状态持久化
    Vue 使用 vuelidate 实现表单验证
  • 原文地址:https://www.cnblogs.com/littleseven/p/5616222.html
Copyright © 2011-2022 走看看