1. 安裝scrapy架構:
pip install scrapy 或者 conda install scrapy (我用的是anaconda環境)
2.什麼是scrapy:
Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用架構,我們隻需要實作少量的代碼,就能夠快速的抓取。
Scrapy 使用了 Twisted['twɪstɪd]異步網絡架構,可以加快我們的下載下傳速度。
3.scrapy的工作流程:
一般的爬蟲流程為:
scrapy的爬蟲流程為:
4.scrapy架構各部分簡介:
5.開始scrapy入門:
1.建立一個scrapy項目(需要Terminal定位到指定的檔案處,mySpider為你需要建立的項目名字,即:scrapy startproject <項目名字>)
E:\PycharmProjects\Spider_Projects>scrapy startproject mySpider
生成的檔案結構為(指令:E:\PycharmProjects\Spider_Projects\myspider>tree):
2.生成一個爬蟲 (koolearn為要生成的koolearn.py檔案,koolearn.cn要爬取的範圍)
E:\PycharmProjects\Spider_Projects>scrapy genspider koolearn "koolearn.cn”
3.提取資料
在生成的xxxx.py中完善spider,使用xpath等方法
class ItcastSpider(scrapy.Spider): # 自定義spider類,繼承自scrapy.spider
name = 'itcast' # 爬蟲名字<爬蟲啟動時使用:scrapy crawl itcast>
allowed_domains = ['koolearn.cn.cn'] # 允許爬取的範圍,防止爬蟲爬取到别的網站
start_urls = ['http://www.koolearn.cn.cn/XXXX/XXXXX'] # 最開始請求的url位址
def parse(self, response):# 資料提取方法,接收下載下傳中間件傳過來的response
# 分組
li_list = response.xpath("//div[@class='tea_con']//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)
# Request, BaseItem, dict or None
yield item
從選擇器中提取字元串:
extract(): 傳回一個包含有字元串資料的清單
extract_first(): 傳回清單中的第一個字元串
注意:
1. spider方法中的parse方法名不能修改
2.需要爬取的url位址必須要屬于allow_domain下的連接配接
3.response.xpath()傳回的是一個含有selector對象的清單
4.儲存資料
在pipeline中儲存資料,需要在setting中設定開啟
OK,暫時先這些吧(我是有底線的————————————)。