scrapy练习1
1.建立项目:
#建立名为tuto的项目
scrapy startproject tuto

2.进入项目目录:
cd tuto
3.建立域名任务:
#minyan任务名;后面是任务对应的域名
scrapy genspider minyan quotes.toscrape.com

cmd全程记录:
E:\a\scrapy_test>scrapy startproject tuto
New Scrapy project 'tuto', using template directory 'c:\python\python37\lib\site
-packages\scrapy\templates\project', created in:
E:\a\scrapy_test\tuto You can start your first spider with:
cd tuto
scrapy genspider example example.com E:\a\scrapy_test>cd tuto E:\a\scrapy_test\tuto>scrapy genspider minyan quotes.toscrape.com
Created spider 'minyan' using template 'basic' in module:
tuto.spiders.minyan E:\a\scrapy_test\tuto>
4.pycharm打开项目,建立用于调试的文件:main.py

用到的函数解析:https://www.cnblogs.com/chenxi188/p/10876690.html
main.py:
# -*- coding: utf-8 -*-
__author__='pasaulis'
import sys,os
from scrapy.cmdline import execute #获取到当前目录,添加到环境变量,方便运行cmd不必再去找目录
#.append()添加到环境变量;.dirname()输出不含文件名的路径;.abspath(__file__)得到当前文件的绝对路径
sys.path.append(os.path.dirname(os.path.abspath(__file__))) #调用命令运行爬虫scrapy crawl 爬虫名minyan.py中(name的值)
execute(["scrapy","crawl","minyan"])
查看页面,确定需要解析哪些数据,在items.py里写出:
import scrapy class TutoItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
text=scrapy.Field()
author=scrapy.Field()
tags=scrapy.Field()
#pass
minyan.py:
# -*- coding: utf-8 -*-
import scrapy
from tuto.items import TutoItem #从tuto文件夹下的items.py导入其中的类TutoItem用于创建列表 class MinyanSpider(scrapy.Spider):
name = 'minyan'
allowed_domains = ['quotes.toscrape.com']
start_urls = ['http://quotes.toscrape.com/'] def parse(self, response):
quotes=response.css('.quote')
for quote in quotes:
item=TutoItem()
item['text']=quote.css('.text::text').extract_first()
item['author']=quote.css('.author::text').extract_first()
item['tags']=quote.css('.keywords::attr(content)').extract_first()
yield item #下一页
next=response.css('.next > a::attr(href)').extract_first()
url=response.urljoin(next) #补全网址
yield scrapy.Request(url=url,callback=self.parse) #请求下一页,并回调自身方法
settings.py把此条改为false
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
运行代码:
在pycharm最下terminal里: scrapy crawl mingyan
或main.py里运行
scrapy练习1的更多相关文章
- Scrapy框架爬虫初探——中关村在线手机参数数据爬取
关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- scrapy 知乎用户信息爬虫
zhihu_spider 此项目的功能是爬取知乎用户信息以及人际拓扑关系,爬虫框架使用scrapy,数据存储使用mongo,下载这些数据感觉也没什么用,就当为大家学习scrapy提供一个例子吧.代码地 ...
- ubuntu 下安装scrapy
1.把Scrapy签名的GPG密钥添加到APT的钥匙环中: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 6272 ...
- 网络爬虫:使用Scrapy框架编写一个抓取书籍信息的爬虫服务
上周学习了BeautifulSoup的基础知识并用它完成了一个网络爬虫( 使用Beautiful Soup编写一个爬虫 系列随笔汇总 ), BeautifulSoup是一个非常流行的Python网 ...
- Scrapy:为spider指定pipeline
当一个Scrapy项目中有多个spider去爬取多个网站时,往往需要多个pipeline,这时就需要为每个spider指定其对应的pipeline. [通过程序来运行spider],可以通过修改配置s ...
- scrapy cookies:将cookies保存到文件以及从文件加载cookies
我在使用scrapy模拟登录新浪微博时,想将登录成功后的cookies保存到本地,下次加载它实现直接登录,省去中间一系列的请求和POST等.关于如何从本次请求中获取并在下次请求中附带上cookies的 ...
- Scrapy开发指南
一.Scrapy简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. Scrapy基于事件驱动网络框架 Twis ...
- 利用scrapy和MongoDB来开发一个爬虫
今天我们利用scrapy框架来抓取Stack Overflow里面最新的问题(),并且将这些问题保存到MongoDb当中,直接提供给客户进行查询. 安装 在进行今天的任务之前我们需要安装二个框架,分别 ...
- python3 安装scrapy
twisted(网络异步框架) wget https://pypi.python.org/packages/dc/c0/a0114a6d7fa211c0904b0de931e8cafb5210ad82 ...
随机推荐
- C++ 语言程序设计(清华大学)1
1.回文数字判断方法(逆过来数值相等):y=y*10+x%10; x /= 10; return(x==y) 2.int rand(void)函数,所需头文件<cstdlib> ,功能是求 ...
- 吴裕雄--天生自然java开发常用类库学习笔记:取得当前日期
import java.util.* ; // 导入需要的工具包 class DateTime{ // 以后直接通过此类就可以取得日期时间 private Calendar calendar = nu ...
- python_os 的知识点
1. os.getcwd() #获得当前路径 2. os.listdir(path) #列出path路径下的所有目录名和文件名包括后缀 3. os.mkdir(path) #在path创建一个目录 4 ...
- Codeforces1243C Tile Painting
原题面:https://codeforces.com/contest/1243/problem/C 题目大意:给定数字n,有n个方块,第i个和第j个之间的距离(abs(i-j))如果是n的因子,那么第 ...
- springBoot (适合ssm)
很多小白在学ssm的时候,选用idea,网上应该有很多教程,创建maven项目,创建spring项目的都有,五花八门. 最近接触了springBoot,这个项目类型适用于ssm,还不用去创建很多文件夹 ...
- USB Windows驱动 音频解决方案芯片DP108
DP108是一款完全替代CM108的高度集成的单芯片USB音频解决方案芯片.方便的USB即插即用的兼容性,用户可以快速创建易用性,高质量和便携式USB音频产品基于高度集成的单芯片解决方案.所有重要的模 ...
- node - 路由的使用
一,服务器文件 app.js .( 要使用路由的文件) const express = require('express') const app = express() const swig = ...
- [洛谷Luogu]P1803 线段覆盖问题
贪心想法题解的各位dalaodalaodalao都讲得很清楚了,在下就提供一种桶排的做法吧. 因为给出数据范围 0≤ai<bi≤10000000≤ai<bi≤10000000≤ai< ...
- 八十三、SAP中的ALV创建之二,ALV相关的类型池定义
一.与ALV相关的类型都是在TYPE-POOLS:SLIS中.我们来到SE11 二.常用的定义有fieldca和layout等,用于显示字段,和控制信息数据等. 三.我们以VBAK表为例,用ALV输出 ...
- ACM-售货员难题
题目描述:售货员的难题 某乡有n个村庄(1< n < 20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0 < s < 1000)是已知的,且A村到B村与B村到 ...