Scrapy库安装和项目创建建议收藏

scrapy库安装使用pip命令安装scrapy,在安装过程中可能会因为缺少依赖库而报错,根据报错提示依次下载需要的依赖库,下载过程中注意系统类型和Python版本我在安装过程中依次安装的库有:

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

Scrapy是一个流行的网络爬虫框架,从现在起将陆续记录Python3.6下Scrapy整个学习过程,方便后续补充和学习。

本文主要介绍scrapy安装、项目创建和测试基本命令操作

scrapy库安装

  使用pip命令安装scrapy,在安装过程中可能会因为缺少依赖库而报错,根据报错提示依次下载需要的依赖库,下载过程中注意系统类型和Python版本

  我在安装过程中依次安装的库有:

  pip install pywin32-223-cp36-cp36m-win32.whl

  pip install Twisted-17.9.0-cp36-cp36m-win32.whl

  pip install scrapy

  Unofficial Windows Binaries for Python Extension Packages:https://www.lfd.uci.edu/~gohlke/pythonlibs/

创建项目

  scrapy安装成功后打开cmd进入想要存储scrapy项目的目录使用startproject命令创建一个新项目:

D:\>scrapy startproject scraptest
New Scrapy project 'scraptest', using template directory 'c:\\python36-32\\lib\\
site-packages\\scrapy\\templates\\project', created in:
    D:\scraptest

You can start your first spider with:
    cd scraptest
    scrapy genspider example example.com

在D:\scraptest\目录下会生成对应的架构目录树

scrapytest/
    scrapy.cfg
    scrapytest/
        __init__.py
        items.py          #定义抓取域的模型
        pipelines.py
        settings.py       #定义一些设置,如用户代理、爬取延时等
        middlewares.py
        __pycache__/
        spiders/
            __pycache__/
            __init__.py

创建爬虫

  使用genspider命令,传入爬虫模块名、域名以及可选模块参数

D:\scraptest>scrapy genspider country example.webscraping.com
Created spider 'country' using template 'basic' in module:
  scraptest.spiders.country

D:\scraptest\scraptest\spiders目录下创建country.py

# -*- coding: utf-8 -*-
import scrapy

class CountrySpider(scrapy.Spider):
    name = 'country'
    allowed_domains = ['example.webscraping.com']
    start_urls = ['http://example.webscraping.com/']

    def parse(self, response):
        pass

1. name作为爬虫名,必须指定名称,根据源码内容,若值为空会提示ValueErro

2. start_urls位爬取的网页

3. parse函数名不能修改,这是源码中指定的回调函数

测试爬虫

# -*- coding: utf-8 -*-
import scrapy
from lxml import etree

class CountrySpider(scrapy.Spider):
    name = 'country'
    allowed_domains = ['example.webscraping.com']
    start_urls = ['http://example.webscraping.com/places/default/view/Afghanistan-1']

    #该函数名不能改变,因为scrapy源码中默认callback函数的函数名就是parse
    def parse(self, response):
        tree = etree.HTML(response.text)
        for node in (tree.xpath('//tr/td[@class="w2p_fw"]')):
            print (node.text)

 使用crawl命令,可以根据-s LOG_LEVEL=DEBUG或-s LOG_LEVEL=ERROR来设置日志信息

D:\scraptest>scrapy crawl country --nolog
None
647,500 square kilometres
29,121,286
AF
Afghanistan
Kabul
None
.af
AFN
Afghani
93
None
None
fa-AF,ps,uz-AF,tk
None

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120195.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数学函数图像处理_matlab基本图像处理

    数学函数图像处理_matlab基本图像处理文章目录1.imdilate2.imresize3.imfinfo4.imcomplement总结1.imdilate功能:进行膨胀操作介绍用法:IM2=imdilate(IM,SE)对灰度图像或二值图像IM进行膨胀操作,返回结果图像IM2。SE为由strel函数生成的结构元素对象。IM2=imdilate(IM,NHOOD)对灰度图像或二值图像IM进行膨胀操作,返回结果图像IM2。参量NHOOD是一个由O和1组成的矩阵,指定邻域。IM2=imdilate(…,SHAPE)对图

    2022年10月5日
    3
  • Sobel 边缘检测算子「建议收藏」

    Sobel 边缘检测算子「建议收藏」转自:http://blog.csdn.net/xiaqunfeng123/article/details/17302003Sobel算子是一个离散微分算子(discretedifferent

    2022年7月1日
    27
  • 浏览器渲染原理解析建议收藏

    Web页面运行在各种各样的浏览器当中,浏览器载入、渲染页面的速度直接影响着用户体验简单地说,页面渲染就是浏览器将html代码根据CSS定义的规则显示在浏览器窗口中的这个过程。先来大致了解一下浏览器都是

    2021年12月21日
    45
  • 详解sigaction「建议收藏」

    详解sigaction「建议收藏」一、内核如何实现信号的捕捉如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下:1.用户程序注册了SIGQUIT信号的处理函数sighandler。2.当前正在执行main函数,这时发生中断或异常切换到内核态。3.在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQU

    2022年5月25日
    46
  • css常见布局

    css常见布局基础版 1 两列布局两列布局是一侧固定 另一侧自适应 一般一个浮动 另一个设置 margin 或者一个绝对定位 另一个设置 margin 代码如下 浮动方法 style gt left float left width 200px background green height 200px right

    2025年7月30日
    3
  • 502 bad gateway

    502 bad gateway聚石塔服务器 后台订单量比较大 搜索订单和导出订单 大概10s左右 就挂了 502badgatewayphp代码中加上set_time_limit(0);没有作用。配置中下面这个调大点就可以了 之前是10s 改成300s300s超过10s的就不502了

    2022年6月15日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号