在上一章基础上新建一个zhuanti3的Scrapy项目,用MySQL来存储,其他信息不变。
1.items.py不变
2.zhuanti3spider.py:相关内容改成zhuanti3。
- 在SQLyog中建立数据表,然后选择“执行查询”命令进行代码的运行:
CREATE TABLE zhuanti(
NAME TEXT,
content TEXT,
article TEXT,
fans TEXT
)ENGINE INNODB DEFAULT CHARSET=utf8;
4.pipelines.py内容如下:
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 # 连接数据库
def process_item(self, item, spider):
cursor = self.post
cursor.execute("use mydb") #选择数据表
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() #提交事务,将数据插入数据库
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 #睡眠时间0.5秒
ITEM_PIPELINES = {
'zhuanti3.pipelines.Zhuanti3Pipeline': 300,
}
6.其他不变,运行scrapy crawl zhuanti3即可在SQLyog中得到结果。