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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ajax 请求的五大步骤

    Ajax 请求的五大步骤什么是AjaxAjax:即异步JavaScript和XML,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,而传统不使用Ajax的网页,如果需要更新内容,必需重载整个网页面。Ajax的工作原理Ajax的工作原理相当关于在用户和服务器之间加了一个中间层(Ajax引擎),使用户操作与服务器响应异步化,并不是所有的用户请求都提交给服务器。像一些数据验证和数据

    2022年5月17日
    47
  • 新书问答 :《看板成熟度模型》

    新书问答 :《看板成熟度模型》

    2021年6月5日
    126
  • 下载pycharm安装教程_最新安卓开发工具使用方法

    下载pycharm安装教程_最新安卓开发工具使用方法Pycharm可以说是一款进行Python开发功能强大的编辑器。鉴于近期很少有关最新版本的Pycharm安装教程,为了能够帮助刚刚学习Python的朋友们。宋宋老师又给大家准备了一版,会介绍Pycharm的安装和注意事项,希望能够在大家学习Python的道路上起到一点微薄之力。文章分为四部分: Pycharm简介 Pycharm下载 Pycharm安装 Pycharm配置 Pycharm简介PyCharm是由JetBrains打造的一款PythonIDE,J

    2022年8月28日
    8
  • Parallel.ForEach并行异步执行导致程序崩溃[通俗易懂]

    Parallel.ForEach并行异步执行导致程序崩溃[通俗易懂]Parallel.ForEach(memberIds,newParallelOptions{MaxDegreeOfParallelism=3},async(id)=>{awaitTask.Delay(randomr.Next(30,80)*memberIds.IndexOf(id));try{//TODO:实现}catch(Exception){//忽.

    2022年7月19日
    15
  • Linux安装pycharm(照着做就行)[通俗易懂]

    Linux安装pycharm(照着做就行)[通俗易懂]pycharm是Python语言的图形化开发工具。因为如果在Linux环境下的Pythonshell中直接进行编程,其无法保存与修改,在大型项目当中这是很不方便的而pycharm的安装,刚好就解决了这些问题。进入pycharm官网https://www.jetbrains.com/pycharm/download/#section=windows//复制到浏览器的搜索框打开这个网页是这样的在这里选择Linux的社区版,这是免费的,即community你会下载到pychar

    2022年10月19日
    3
  • 数据结构与算法(三):双向链表[通俗易懂]

    数据结构与算法(三):双向链表[通俗易懂]一、双向链表双向链表与单链表基本相似,但是最大的区别在于双向链表在节点中除了指向下一节点的next指针外,还有指向前一节点的prev指针,这使得双向链表在可以在任意节点从头尾两个方向进行遍历,是“双

    2022年8月16日
    11

发表回复

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

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