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

Scrapy库安装和项目创建的更多相关文章

  1. angular入门一之环境安装及项目创建

    angular入门一之环境安装及项目创建 1.安装node.js 下载,安装,在终端测试安装是否成功:node -v(查看nodejs版本) npm -v(查看npm版本) 下载地址:https:// ...

  2. 4. gitlab 安装、项目创建

    官网: https://about.gitlab.com/ https://docs.gitlab.com/omnibus/maintenance/README.html#get-service-st ...

  3. Windows下Django的安装与项目创建

    1.Django的安装命令:pip install django 2.如果要指定安装版本可用:pip install django==1.10.3 3.查看指定的安装库:pip show django ...

  4. 测试开发之Django——No2.Django的安装以及项目创建

    开发平台:Mac Python版本:3.7 Django版本:2.0.5 一.Django的安装 1.pip安装 输入命令pip install Django==2.0.5 说明:不指定版本,则安装的 ...

  5. django系列2--下载安装、项目创建、配置、启动

    Django下载与安装 一.使用pip: 1.下载: django的官网下载页:https://www.djangoproject.com/download/ 1.使用pip安装, 在cmd命令行中输 ...

  6. 第十六节:Scrapy爬虫框架之项目创建spider文件数据爬取

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取所设计的, 也可以应用在获取API所返回的数据或 ...

  7. Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)

    Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...

  8. vue手脚架安装和项目创建

    一 node安装 1 如果不确定自己是否安装了node,可以在命令行工具内执行:node -v: 2如果执行结果显示:xx不是内部命令,说明你还没有安装node,node按爪给你地址 : http:/ ...

  9. Django入门一之安装及项目创建

    1. 习惯性的创建虚拟环境 # 由于我安装也安装了pyhton3所以在前面要加python2 -m F:\Python Script\MyVirtualenv>python2 -m virtua ...

随机推荐

  1. linux(6/17)--文件打包上传和下载

    tar命令 命令功能 用来压缩和解压文件 命令格式 tar[必要参数][选择参数][文件] tar打包工具 -f ##指定生成包的名字,建议 -f单独写成一个参数 --delete filename ...

  2. 使用GoogleCode作SVN服务器的一些问题及解决办法

    1.首先最主要的一个问题,就是注册GoogleCode和安装SVN工具. 网上教程很多,不一一赘述.http://www.th7.cn/Program/net/201305/136059.shtml ...

  3. 双摄像头测距的OpenCV实现

    http://blog.csdn.net/scyscyao/article/details/5562024 版权声明:本文为博主原创文章,未经博主允许不得转载. 虽然最近注意力已经不可遏制地被神经科学 ...

  4. wyx20162314实验报告1

    北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162310 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年3月26号 实验密级: 非 ...

  5. C++/VC中ANSI与UNICODE中字符定义和函数对照表

    这样查起来方便多了 ANSI UNICODE 通用 说明 数据类型 (char.h) (wchar.h) (tchar.h)   char wchar_t TCHAR   char * wchar_t ...

  6. 编写基本的 udev 规则

    来自: https://linux.cn/article-9365-1.html?utm_source=index&utm_medium=more 读者对象 理解 udev 背后的基本概念,学 ...

  7. 在 CentOS 7.0 上安装配置 Ceph 存储

    来自: https://linux.cn/article-6624-1.html Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台.当你计划构建一个云时,你首先需要决定如何实现你的存储 ...

  8. eclipse显示结果窗口字体大小

    设置前的字体大小 设置后的字体大小 步骤

  9. 嵌套的SQL另外一种写法

    SELECT a.TradeOrderID 二段交易号 , c.TradeOrderID 一段订单号 , a.BaggingDate AS 出库时间 , a.TransportOrderCode AS ...

  10. redis:php-redis中有序集合 zset的使用

    ZSET(stored set) 和 set 一样是字符串的集合,不同的是每个元素都会关联一个 double 类型的 score .实现使用的是 skip list 和 hash table , sk ...