request+sqlalchemy爬取图片保存数据库

学了sqlalchemy数据库使用后,就打算爬取一些图片,试着写入数据库中

要爬取的网站~http://www.ransheji.com

图片是很规律的,所以不用使用正则提取图片链接,转成json格式就可以取值

使用前先安装环境:

pip install request 

pip install  pymysql

pip install  sqlalchemy

from sqlalchemy import create_engine,Column,Integer,String   
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import requests
import json

#数据库的配置变量
HOSTNAME='192.168.xxx.xxx'
PORT='3306'
DATABASE='xft' #数据库,必须先创建,不然执行时候会报错
USERNAME='root' #数据库账号
PASSWORD='12345' #数据库密码
DB_URL="mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format
(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)

engine=create_engine(DB_URL) #创建引擎
BASE=declarative_base(engine) #用declarative_base根据engine创建一个orm的基类
session=sessionmaker(engine)()
#创建属性映射到数据库表中的字段
class Ransheji(BASE):
__tablename__='ransheji' #指定模型映射到数据库中的表名
id=Column(Integer,primary_key=True,autoincrement=True)
tag_name=Column(String(100))
img_url=Column(String(500))
BASE.metadata.drop_all()
BASE.metadata.create_all()
#获取图片链接
url='http://www.ransheji.com/Api/Img/getImgList?timeStamp=1547435413230&group=1'
r=requests.get(url)
responseData = r.text.encode('utf-8')
retdata = json.loads(responseData)
print(retdata)
list=retdata['data']


#把数据写进数据库
# rsj_01=Ransheji(tag_name='工装空间 售楼中心',img_url='https://static.chaodp.com/0930e73ba038c4d372f5ea10aca2caa7?imageslim&imageView2/2/w/400/')
# session.add(rsj_01)
# session.commit()
#创建orm模型的对象
for li in list:
ransheji=Ransheji(tag_name='{}'.format(li['tag']),img_url='{}'.format(li['min_img']))
session.add(ransheji)
session.commit() #提交到数据库中


查看数据库:


原文地址:https://www.cnblogs.com/xiaofantong666/p/10271085.html