17. Scrapy 框架使用
1.1 創(chuàng)建項(xiàng)目
scrapy startproject myfrist(your_project_name)

文件說明:
名稱作用scrapy.cfg項(xiàng)目的配置信息,主要為Scrapy命令行工具提供一個基礎(chǔ)的配置信息。(真正爬蟲相關(guān)的配置信息在settings.py文件中)items.py設(shè)置數(shù)據(jù)存儲模板,用于結(jié)構(gòu)化數(shù)據(jù),如:Django的Modelpipelines數(shù)據(jù)處理行為,如:一般結(jié)構(gòu)化的數(shù)據(jù)持久化settings.py配置文件,如:遞歸的層數(shù)、并發(fā)數(shù),延遲下載等spiders爬蟲目錄,如:創(chuàng)建文件,編寫爬蟲規(guī)則
注意:一般創(chuàng)建爬蟲文件時,以網(wǎng)站域名命名
2 編寫 spdier
在spiders目錄中新建 daidu_spider.py 文件
2.1 注意
爬蟲文件需要定義一個類,并繼承scrapy.spiders.Spider
必須定義name,即爬蟲名,如果沒有name,會報錯。因?yàn)樵创a中是這樣定義的
2.2 編寫內(nèi)容
在這里可以告訴 scrapy 。要如何查找確切數(shù)據(jù),這里必須要定義一些屬性
name: 它定義了蜘蛛的唯一名稱
allowed_domains: 它包含了蜘蛛抓取的基本URL;
start-urls: 蜘蛛開始爬行的URL列表;
parse(): 這是提取并解析刮下數(shù)據(jù)的方法;
下面的代碼演示了蜘蛛代碼的樣子:
import scrapy
class DoubanSpider(scrapy.Spider):
? ?name = 'douban'
? ?allwed_url = 'douban.com'
? ?start_urls = [
? ? ? ?'https://movie.douban.com/top250/'
? ?]
? ?def parse(self, response):
? ? ? ?movie_name = response.xpath("//div[@class='item']//a/span[1]/text()").extract()
? ? ? ?movie_core = response.xpath("//div[@class='star']/span[2]/text()").extract()
? ? ? ?yield {
? ? ? ? ? ?'movie_name':movie_name,
? ? ? ? ? ?'movie_core':movie_core
? ? ? ?}
其他命令:
創(chuàng)建爬蟲
scrapy genspider 爬蟲名 爬蟲的地址運(yùn)行爬蟲
scrapy crawl 爬蟲名