使用python在scrapy框架下制作一个简单的爬虫
步骤:
一,新建一个工程
二,在工程中中新建一个爬虫项目,scrapy startproject myspider
scrapy startproject myspider #myspider为工程名,可根据自己需求更改
三,切入到项目目录下,然后在项目中,新建一个爬虫spider。
1 cd myspider #切入到项目目录下 2 scrapy genspider itcast itcast.cn#新建一个爬虫
四,在itcast.py中,编写爬取程序
1 # -*- coding: utf-8 -*- 2 import scrapy 3 4 5 class ItcastSpider(scrapy.Spider): 6 name = 'itcast'#爬虫名 7 allowed_domains = ['itcast.cn']#允许爬取得范围 8 start_urls = ['http://www.itcast.cn/channel/teacher.shtml']#最开始请求的url地址 9 10 def parse(self, response): 11 #处理start_url地址对应的响应 12 # ret=response.xpath("//div[@class='tea_con']//h3/text()").extract() 13 # print(ret) 14 15 # li_list=response.xpath("//div[@class='tea_con']//li") 16 # for li in li_list: 17 # item={} 18 # item["name"]=li.xpath(".//h3/text()").extract()[0] 19 # item["title"]=li.xpath(".//h4/text()").extract()[0] 20 # print(item) 21 22 23 li_list = response.xpath("//div[@class='tea_con']//li") 24 for li in li_list: 25 item = {} 26 item["name"] = li.xpath(".//h3/text()").extract_first() 27 item["title"] = li.xpath(".//h4/text()").extract_first() 28 # print(item) 29 yield item #将数据传给pipelines,使用生成器可以减小内存占用
五,开启MyspiderPipeline之前需要在settings.py中开启MyspiderPipeline
1 #开启ITEM_PIPELINES,ITEM_PIPELINES才可以使用 2 ITEM_PIPELINES = { 3 'myspider.pipelines.MyspiderPipeline': 300,#300表示爬虫的距离远近,越大越远, 4 }
六, 在MyspiderPipeline中进行数据处理
1 class MyspiderPipeline(object): 2 def process_item(self, item, spider): 3 item["hello"]="world" 4 print(item) 5 return item#为了让数据在不同的pipeline中传递,需要return来返回item,
七、保存爬取的数据
1 scrapy crawl itcast -o teacher.csv#将爬取的数据保存为teacher.csv
一个简单的scrapy框架下的爬虫就制作好了