使用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框架下的爬虫就制作好了

原文地址:https://www.cnblogs.com/zhiliang9408/p/10000842.html