Scrapy爬蟲項目——阿里文學&噹噹網

1. Cmd命令行創建項目

創建項目命令:

scrapy startproject [項目名]

Items定義要爬取的東西;spiders文件夾下可以放多個爬蟲文件;pipelines爬蟲後處理的文件,例如爬取的信息要寫入數據庫;settings項目設置

2. Scrapy常用模板

Scrapy-般通過指令管理爬蟲項目,常用的指令有:

(1) startproject創建爬蟲項目

basic基礎模板(最常用);crawl通用爬蟲模板;csvfeed爬取csv格式的模板;xmlfeed爬取xml格式的模板

(2) genspider -I查看爬蟲模板

(3)genspider -t模版爬蟲文件名域名創建爬蟲

(4)crawl運行爬蟲

(5)list查看有哪些爬蟲

3. Scrapy爬蟲編寫基礎

編寫一個Scrapy爬蟲項目,一般按照如下流程進行:

(1) 創建爬蟲項目

(2) 編寫items

(3) 創建爬蟲文件

(4) 編寫爬蟲文件

(5) 編寫pipelines

(6) 配置settings

4. 使用scrapy編寫阿里文學數據

  • 第一步:定義目標

在items中定義目標

  • 第二步:完善爬蟲文件的編寫

yield這裏轉交給pipelines文件處理

糾正一下:圖中第①點我的目錄應該是ali_first

(運行之後報錯才發現,這個筆記是邊做項目邊寫的,懶得重新截圖編輯了)

  • 第三步:開啓pipelines

修改settings文件

  • 第四步:完善pipelines文件內容

5. 使用scrapy編寫噹噹網商品數據

目標站點:噹噹(http://category.dangdang.com/pg1-cp01.54.06.00.00.00.html)

需求數據:商品標題、鏈接評論數等數據

要求:自動翻頁並自動寫入數據庫

  • 對比翻頁鏈接:

http://category.dangdang.com/pg1-cp01.54.06.00.00.00.html

http://category.dangdang.com/pg2-cp01.54.06.00.00.00.html

  • 第一步:items文件定義目標

  • 第二步:完善爬蟲文件

# -*- coding: utf-8 -*-
import scrapy
from dangdang_sed.items import DangdangSedItem
from scrapy.http import Request

class FirstSpider(scrapy.Spider):
    name = 'first'
    allowed_domains = ['category.dangdang.com']
    start_urls = ['http://category.dangdang.com/pg1-cp01.54.06.00.00.00.html/']

    def parse(self, response):
        item = DangdangSedItem()            # 創建對象
        # 獲取數據
        item["title"] = response.xpath('//a[@name="itemlist-title"]/@title').extract()
        item["href"] = response.xpath('//a[@name="itemlist-title"]/@href').extract()
        item["comment"] = response.xpath('//a[@name="itemlist-review"]/text()').extract()
        # print('書名:\n'+str(item["title"]))
        # print(item["title"])
        yield item
        # 翻頁
        for i in range(0,10):
            url = "http://category.dangdang.com/pg"+str(i+2)+"-cp01.54.06.00.00.00.html"
            yield Request(url,callback = self.parse)
  • 第三步:開啓pipelines

修改settings文件

ITEM_PIPELINES = {
   'dangdang_sed.pipelines.DangdangSedPipeline': 300,
}
  • 第四步:下載pymysql

使用命令:pip install pymysql

異常:

根據提示輸入命令更新pip安裝包:

python -m pip install --upgrade pip

再次出現異常,更新失敗:

通過百度看到更新方法:

python -m pip install --upgrade pip -i https://pypi.douban.com/simple

再次下載安裝pymysql庫

修改pymysql設置

(1)找到pymysql路徑下的connections.pyi文件

(2)修改connections.pyi文件中的charset值,避免出現亂碼問題

  • 第五步:準備數據庫

這裏用vavicat for mysql工具創建數據庫和數據表

數據庫:dangdang 數據表:boods

在mysql命令窗口中通過密碼登錄,查看數據庫可以看到剛纔創建的數據庫dangdang

  • 第六步:完善pipelines文件內容

  • 第七步:運行爬蟲文件並查看數據庫存儲結果

運行first.py文件,同時查看數據庫中是否有數據插入

通過vavicat for mysql工具查看dangdang數據庫的boods表格數據

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章