1. 程式人生 > >將scrapy爬蟲框架爬取到的資料存入mysql資料庫

將scrapy爬蟲框架爬取到的資料存入mysql資料庫

使用scrapy爬取網站資料,是一個目前來說比較主流的一個爬蟲框架,也非常簡單。 1、建立好專案之後現在settings.py裡面把ROBOTSTXT_OBEY的值改為False,不然的話會預設遵循robots協議,你將爬取不到任何資料。 2、在爬蟲檔案裡開始寫你的爬蟲,你可以使用xpath,也可以使用css選擇器來解析資料,等將資料全部解析完畢之後再items檔案裡面去宣告你的欄位

import scrapy
class JobspiderItem(scrapy.Item):
    zwmc = scrapy.Field()
    zwxz = scrapy.Field()
    zpyq = scrapy.Field()
    gwyq = scrapy.Field()

3、然後再爬蟲檔案裡面先去匯入items裡面宣告欄位的類,接著建立item物件,寫入值,最後別忘了把item給yield出去

item = JobspiderItem()
item['zwmc'] = zwmc
item['zwxz'] = money
item['zpyq'] = zpyq
item['gwyq'] = gzyq
yield item

4、接下來就是存入mysql資料庫了: 1.在pipelings.py檔案裡面先匯入item類以及pymysql模組

from ..jobspider.items import JobspiderItem
import pymysql

2.然後就開始連線資料庫以及寫入資料庫,我這裡是直接先將mysql資料庫以及資料表建立好了,並沒有在程式碼裡面建立

class JobspiderPipeline(object):
    def __init__(self):
        # 1. 建立資料庫的連線
        self.connect = pymysql.connect(
	    # localhost連線的是本地資料庫
            host='localhost',
            # mysql資料庫的埠號
            port=3306,
            # 資料庫的使用者名稱
            user='root',
            # 本地資料庫密碼
            passwd='123456',
            # 表名
            db='job51',
            # 編碼格式
            charset='utf8'
        )
        # 2. 建立一個遊標cursor, 是用來操作表。
        self.cursor = self.connect.cursor()

    def process_item(self, item, spider):
        # 3. 將Item資料放入資料庫,預設是同步寫入。
        insert_sql = "INSERT INTO job(zwmc, zwxz, zpyq, gwyq) VALUES ('%s', '%s', '%s', '%s')" % (item['zwmc'], item['zwxz'], item['zpyq'], item['gwyq'])
        self.cursor.execute(insert_sql)

        # 4. 提交操作
        self.connect.commit()

    def close_spider(self, spider):
        self.cursor.close()
        self.connect.close()

5、最後就是去settings.py檔案裡面將ITEM_PIPELINES給解註釋了