zoukankan      html  css  js  c++  java
  • 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() #提交到数据库中


    查看数据库:


  • 相关阅读:
    oracle登陆认证方式
    oracle用户管理
    oracle sqlplus常用命令
    瀑布开发模式和敏捷开发模式
    在C#中用RX库和await来实现直观的状态机
    C#实现简单的字符串加密
    双屏办公之体会
    利用json2csharp快速生成C#类
    .Net中的插件框架Managed Extensibility Framework
    解决NVidia显卡最大化和最小化窗口时的卡顿问题
  • 原文地址:https://www.cnblogs.com/xiaofantong666/p/10271085.html
Copyright © 2011-2022 走看看