Scrapy笔记
1.创建爬虫
##命令方式
1.创建项目: scrapy startporject [爬虫名字]
2.创建爬虫: 进入到项目所在的路径,执行命令: scrapy genspider [爬虫名字][爬虫的域名]
注意:爬虫名字不能和项目名称一致
3.提取数据
- 完善spider 使用xpath等方法 itcast.py 文件中的方法
- extract()返回一个包含有字符串函数数据的列表
- extract_first()返回列表中的第一个字符串
class ItcastSpider(scrapy.Spider):
name = 'itcast' #爬虫名
allowed_domains = ['itcast.cn'] # 允许爬取的范围
start_urls = ['http://www.itcast.cn/channel/teacher.shtml'] # 最开始的url
def parse(self, response):
# 处理start_url地址对应的响应
# ret1 = response.xpath("//div[@class='tea_con']//h3/text()").extract()
# print(ret1)
#分组
li_list = response.xpath("//div[@class='tea_con']//li") # 进入到li目录
for li in li_list:
item = {}
item["name"] = li.xpath(".//h3/text()").extract_first()
item["title"] = li.xpath(".//h4/text()").extract_first()
# print(item)
# Reuqest BaseItem
yield item # 传给 pipeline
4.保存数据
- pipeline保存数据
#pipeline.py 中的设置
class MyspiderPipeline(object):
def process_item(self, item, spider): # 这个函数不能修改名字
item["hello"] = "world"
# print(item)
return item
# 第二个pipeline
class MyspiderPipeline1(object):
def process_item(self, item, spider): # 这个函数不能修改名字
print(item)
return item
#########################################################
# settings.py 中需要开启item
# Configure item pipelines
# See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
'mySpider.pipelines.MyspiderPipeline': 300, # 数字越小表示距离越近则优先级越高
'mySpider.pipelines.MyspiderPipeline1': 301, # 第二个pipeline
}