Scrapy库安装和项目创建
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库安装和项目创建的更多相关文章
- angular入门一之环境安装及项目创建
angular入门一之环境安装及项目创建 1.安装node.js 下载,安装,在终端测试安装是否成功:node -v(查看nodejs版本) npm -v(查看npm版本) 下载地址:https:// ...
- 4. gitlab 安装、项目创建
官网: https://about.gitlab.com/ https://docs.gitlab.com/omnibus/maintenance/README.html#get-service-st ...
- Windows下Django的安装与项目创建
1.Django的安装命令:pip install django 2.如果要指定安装版本可用:pip install django==1.10.3 3.查看指定的安装库:pip show django ...
- 测试开发之Django——No2.Django的安装以及项目创建
开发平台:Mac Python版本:3.7 Django版本:2.0.5 一.Django的安装 1.pip安装 输入命令pip install Django==2.0.5 说明:不指定版本,则安装的 ...
- django系列2--下载安装、项目创建、配置、启动
Django下载与安装 一.使用pip: 1.下载: django的官网下载页:https://www.djangoproject.com/download/ 1.使用pip安装, 在cmd命令行中输 ...
- 第十六节:Scrapy爬虫框架之项目创建spider文件数据爬取
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取所设计的, 也可以应用在获取API所返回的数据或 ...
- Python -- Scrapy 框架简单介绍(Scrapy 安装及项目创建)
Python -- Scrapy 框架简单介绍 最近在学习python 爬虫,先后了解学习urllib.urllib2.requests等,后来发现爬虫也有很多框架,而推荐学习最多就是Scrapy框架 ...
- vue手脚架安装和项目创建
一 node安装 1 如果不确定自己是否安装了node,可以在命令行工具内执行:node -v: 2如果执行结果显示:xx不是内部命令,说明你还没有安装node,node按爪给你地址 : http:/ ...
- Django入门一之安装及项目创建
1. 习惯性的创建虚拟环境 # 由于我安装也安装了pyhton3所以在前面要加python2 -m F:\Python Script\MyVirtualenv>python2 -m virtua ...
随机推荐
- json数据结构
JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合服务器与JavaScript的交互.JSON易于人阅读和编写.同时也易于机器解析和生成.JSON采 ...
- 【Flask】Flask-Migrate基本使用
# flask_migrate笔记:在实际的开发环境中,经常会发生数据库修改的行为.一般我们修改数据库不会直接手动的去修改,而是去修改ORM对应的模型,然后再把模型映射到数据库中.这时候如果有一个工具 ...
- Mybatis映射配置文件<select>的学习
resultMap的使用 当查询的表的列名与实体类的属性名不同时,有三种方式来处理: 1.使用SQL的别名 如:select user_name userName from user 2.如果符合驼峰 ...
- Action Results in Web API 2
https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/action- ...
- mysql官网下载链接——绿色版&安装版
windows64位5.5.60安装版 https://downloads.mysql.com/archives/get/file/mysql-5.5.60-winx64.msi windows64位 ...
- Kruskal算法-最小生成树
2017-07-26 10:32:07 writer:pprp Kruskal算法是根据边的加权值以递增的方式,一次找出加权值最低的边来建最小生成树:并且每次添加的边不能造成生成树有回路,直到找到N ...
- 你知道uwsgi???
第一步,打开https://www.google.com.hk 第二步,输入how to restart uwsgi
- Spring -- 如何为applicationContext.xml 添加 util 的 *.xsd文件
- Hibernate -- 操作持久化对象
知识点2: session概述 Session 接口是 Hibernate 向应用程序提供的操纵对数据库的最主要的接口,它提供了基本的保存,更新, 删除和加载Java对象的方法. 知识点3:理解ses ...
- IE报错:缺少标识符、字符串或数字
在调试ExtJS程序时,在firefox和chrome上都能显示,但一到IE上就报错,后来从左下角的JS报错提示中才发现,原来是JS代码中多加了个逗号. menu: { items: [{ text: ...