scrapy 爬虫框架
来源:互联网 发布:算法的定义和特征 编辑:程序博客网 时间:2024/06/05 16:35
1.安装 升级pip版本 pip install --upgrade pip
通过pip安装scrapy框架 pip install Scrapy
安装成功 只执行scrapy 进行测试是否安装成功
2. scrapy startproject "爬虫项目名称"
执行此命令,可以生成一个爬虫项目
会预先生成一些文件在里面.
3.执行命令 生成爬取数据模板 scrapy genspider 文件名[类名] "要爬去的域名" [如]:scrapy genspider itcast "http://www.baidu.com"
// 命令生成的代码如下:
class ItcastSpider(scrapy.Spider):
name = 'itcast' // 模块名称
allowed_domains = ['http://www.itcast.cn']// 爬取的域名[可选]
start_urls = ['http://www.itcast.cn'] // 爬取的开始路径
// 爬取后执行的代码
def parse(self, response):
print (response.body)// 查看相应源码
print("end..");
// 可在这里生成下一个要爬取的链接
#这里若有个循环,则可以使用管道 yield则会进入管道
for a in "test":
item=ScrapytestItem()
item["title"]=a
yield item
在window下面,按住shift 再右键,可以直接在此目录下打开命令窗口,然后执行如下命令
4.[检查爬虫状态命令]scrapy check 模块名称[这个地方要写上面那个模板里面的 name = 'itcast' 不需要写类名或者文件名称]
5.[运行一个爬虫命令] scrapy crawl 模块名称[这个地方要写上面那个模板里面的 name = 'itcast' 不需要写类名或者文件名称]
可以在命令行输入scrapy 来获取上面这些命令
6.管道
1.在爬虫主模板下面的 parse方法里面,需要有一个循环.该循环里面需使用yield 来返回每次循环的item数据
2.item 是继承了scrapy.Item 的子类,用户存储数据,
3.管道里面可以执行处理数据的操作
4.程序执行流程 爬取到数据之后,执行主墨白里面的parse方法,通过response获取到数据,循环使用yield 返回item数据,item是经过预处理的数据存储在item里面的
再在管道里面处理这些数据[可以保存下来..等操作]
5.需要在项目里面的setting.py里面注册
ITEM_PIPELINES = {
'ScrapyTest.pipelines.ScrapytestPipeline': 300,
#来一个管道在这里添加即可 300表示优先级,数值越小越先执行
}
7 item 的 类模型
import scrapy
class ScrapytestItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = scrapy.Field()
#需要的字段在这里添加即可.
pass
8.管道的类
class ScrapytestPipeline(object):
#可以添加init和close [类初始和类结束]方法.来预先处理些init操作
def process_item(self, item, spider):
print("管道-------------");
# print(item)
#处理item带过来的逻辑数据代码
return item
9.xpath 可通过表达式来截取网页中的数据
response.xpath("//div[@class='li_txt']")
10.scrapy shell "要爬取的网址 " 直接在项目的命令中敲此命令,可以在命令中直接爬取到对应的数据. 然后可以输入相应的命令,直接爬取数据,比如response.body 获取响应数据
11.选择器
1.xpath():传入xpath表达式,返回该表达式所对应的所有节点的list列表
XPath表达式的例子及对应的含义:
/html/head/title: 选择<HTML>文档中 <head> 标签内的 <title> 元素
/html/head/title/text(): 选择上面提到的 <title> 元素的文字
//td: 选择所有的 <td> 元素
//div[@class="mine"]: 选择所有具有 class="mine" 属性的 div 元素
2.extract(): 序列化该节点为unicode字符串并返回list
3.css():传入css表达式,返回该表达式所对应的所有节点的selector list列表,语法同beautifulSoup4
4.re():根据传入的正则表达式对数据进行提取,返回Unicode字符串list列表
通过pip安装scrapy框架 pip install Scrapy
安装成功 只执行scrapy 进行测试是否安装成功
2. scrapy startproject "爬虫项目名称"
执行此命令,可以生成一个爬虫项目
会预先生成一些文件在里面.
3.执行命令 生成爬取数据模板 scrapy genspider 文件名[类名] "要爬去的域名" [如]:scrapy genspider itcast "http://www.baidu.com"
// 命令生成的代码如下:
class ItcastSpider(scrapy.Spider):
name = 'itcast' // 模块名称
allowed_domains = ['http://www.itcast.cn']// 爬取的域名[可选]
start_urls = ['http://www.itcast.cn'] // 爬取的开始路径
// 爬取后执行的代码
def parse(self, response):
print (response.body)// 查看相应源码
print("end..");
// 可在这里生成下一个要爬取的链接
#这里若有个循环,则可以使用管道 yield则会进入管道
for a in "test":
item=ScrapytestItem()
item["title"]=a
yield item
在window下面,按住shift 再右键,可以直接在此目录下打开命令窗口,然后执行如下命令
4.[检查爬虫状态命令]scrapy check 模块名称[这个地方要写上面那个模板里面的 name = 'itcast' 不需要写类名或者文件名称]
5.[运行一个爬虫命令] scrapy crawl 模块名称[这个地方要写上面那个模板里面的 name = 'itcast' 不需要写类名或者文件名称]
可以在命令行输入scrapy 来获取上面这些命令
6.管道
1.在爬虫主模板下面的 parse方法里面,需要有一个循环.该循环里面需使用yield 来返回每次循环的item数据
2.item 是继承了scrapy.Item 的子类,用户存储数据,
3.管道里面可以执行处理数据的操作
4.程序执行流程 爬取到数据之后,执行主墨白里面的parse方法,通过response获取到数据,循环使用yield 返回item数据,item是经过预处理的数据存储在item里面的
再在管道里面处理这些数据[可以保存下来..等操作]
5.需要在项目里面的setting.py里面注册
ITEM_PIPELINES = {
'ScrapyTest.pipelines.ScrapytestPipeline': 300,
#来一个管道在这里添加即可 300表示优先级,数值越小越先执行
}
7 item 的 类模型
import scrapy
class ScrapytestItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
title = scrapy.Field()
#需要的字段在这里添加即可.
pass
8.管道的类
class ScrapytestPipeline(object):
#可以添加init和close [类初始和类结束]方法.来预先处理些init操作
def process_item(self, item, spider):
print("管道-------------");
# print(item)
#处理item带过来的逻辑数据代码
return item
9.xpath 可通过表达式来截取网页中的数据
response.xpath("//div[@class='li_txt']")
10.scrapy shell "要爬取的网址 " 直接在项目的命令中敲此命令,可以在命令中直接爬取到对应的数据. 然后可以输入相应的命令,直接爬取数据,比如response.body 获取响应数据
11.选择器
1.xpath():传入xpath表达式,返回该表达式所对应的所有节点的list列表
XPath表达式的例子及对应的含义:
/html/head/title: 选择<HTML>文档中 <head> 标签内的 <title> 元素
/html/head/title/text(): 选择上面提到的 <title> 元素的文字
//td: 选择所有的 <td> 元素
//div[@class="mine"]: 选择所有具有 class="mine" 属性的 div 元素
2.extract(): 序列化该节点为unicode字符串并返回list
3.css():传入css表达式,返回该表达式所对应的所有节点的selector list列表,语法同beautifulSoup4
4.re():根据传入的正则表达式对数据进行提取,返回Unicode字符串list列表
阅读全文
0 0
- scrapy爬虫框架
- Scrapy爬虫框架入门
- Python 爬虫框架 scrapy
- 网络爬虫框架-Scrapy
- Scrapy爬虫框架笔记
- Scrapy - 爬虫框架
- 爬虫框架Scrapy
- 关于scrapy爬虫框架
- scrapy爬虫框架
- scrapy 爬虫框架
- Scrapy爬虫框架
- 爬虫框架scrapy安装
- Scrapy爬虫框架
- Python爬虫框架--Scrapy
- Python Scrapy爬虫框架
- Scrapy爬虫框架介绍
- python爬虫 -- scrapy框架
- Python爬虫---scrapy框架
- 配置jetty 远程调试
- CTime与COleDateTime时间操作类的使用
- MYSQL学习笔记(十六)更新和删除数据
- 微信登陆
- 一位资深程序员大牛给予Java初学者的学习路线建议(转)
- scrapy 爬虫框架
- Android沉浸式状态栏(透明状态栏)
- 通过 yar 初识RPC
- 03-Thrift进阶
- 查找 HTML 元素、改变 HTML
- React Native 嵌入到原生应用
- 喷水装置一
- GTK编译后运行出现: GLib-GIO-CRITICAL **: g_dbus_connection_register_object: assertion 'G_IS_DBUS_CONNECTION
- PHP向数组中添加元素