在上一章基礎(chǔ)上新建一個(gè)zhuanti3的Scrapy項(xiàng)目蒲列,用MySQL來存儲(chǔ),其他信息不變争拐。
1.items.py不變
2.zhuanti3spider.py:相關(guān)內(nèi)容改成zhuanti3腋粥。
- 在SQLyog中建立數(shù)據(jù)表晦雨,然后選擇“執(zhí)行查詢”命令進(jìn)行代碼的運(yùn)行:
CREATE TABLE zhuanti(
NAME TEXT,
content TEXT,
article TEXT,
fans TEXT
)ENGINE INNODB DEFAULT CHARSET=utf8;
4.pipelines.py內(nèi)容如下:
import pymysql
class Zhuanti3Pipeline(object):
def __init__(self):
conn = pymysql.connect(host='localhost',user='root',db='mydb', port=3306, charset="utf8")
cursor = conn.cursor()
self.post = cursor # 連接數(shù)據(jù)庫
def process_item(self, item, spider):
cursor = self.post
cursor.execute("use mydb") #選擇數(shù)據(jù)表
sql = "INSERT INTO zhuanti(name,content,article,fans) VALUES (%s,%s,%s,%s)"
cursor.execute(sql,(item['name'],item['content'],item['article'],item['fans']))
cursor.connection.commit() #提交事務(wù)架曹,將數(shù)據(jù)插入數(shù)據(jù)庫
return item
5.setttings.py文件
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3294.6 Safari/537.36' #請求頭
DOWNLOAD_DELAY = 0.5 #睡眠時(shí)間0.5秒
ITEM_PIPELINES = {
'zhuanti3.pipelines.Zhuanti3Pipeline': 300,
}
6.其他不變,運(yùn)行scrapy crawl zhuanti3即可在SQLyog中得到結(jié)果闹瞧。
image.png