Python下载商品数据并连接数据库且保存数据


Posted in Python onMarch 31, 2022

前言:

开发环境:

  • python 3.8
  • pycharm 2021.2 专业版

代码实现:

  • 发送请求
  • 获取数据
  • 解析数据(筛选数据)
  • 保存数据
  • 连接数据库

请求数据

# 伪装
headers = {
    'cookie': 'miid=4137864361077413341; tracknick=%5Cu5218%5Cu6587%5Cu9F9978083283; thw=cn; hng=CN%7Czh-CN%7CCNY%7C156; cna=MNI4GicXYTQCAa8APqlAWWiS; enc=%2FWC5TlhZCGfEq7Zm4Y7wyNToESfZVxhucOmHkanuKyUkH1YNHBFXacrDRNdCFeeY9y5ztSufV535NI0AkjeX4g%3D%3D; t=ad15767ffa6febb4d2a8709edebf63d3; lgc=%5Cu5218%5Cu6587%5Cu9F9978083283; sgcookie=E100EcWpAN49d4Uc3MkldEc205AxRTa81RfV4IC8X8yOM08mjVtdhtulkYwYybKSRnCaLHGsk1mJ6lMa1TO3vTFmr7MTW3mHm92jAsN%2BOA528auARfjf2rnOV%2Bx25dm%2BYC6l; uc3=nk2=ogczBg70hCZ6AbZiWjM%3D&vt3=F8dCvCogB1%2F5Sh1kqHY%3D&lg2=Vq8l%2BKCLz3%2F65A%3D%3D&id2=UNGWOjVj4Vjzwg%3D%3D; uc4=nk4=0%40oAWoex2a2MA2%2F2I%2FjFnivZpTtTp%2F2YKSTg%3D%3D&id4=0%40UgbuMZOge7ar3lxd0xayM%2BsqyxOW; _cc_=W5iHLLyFfA%3D%3D; _m_h5_tk=ac589fc01c86be5353b640607e791528_1647451667088; _m_h5_tk_enc=7d452e4e140345814d5748c3e31fc355; xlly_s=1; x5sec=7b227365617263686170703b32223a223264393234316334363365353038663531353163633366363036346635356431434c61583635454745506163324f2f6b2b2b4b6166686f4d4d7a45774e7a4d794d6a59324e4473784d4b6546677037382f2f2f2f2f77453d227d; JSESSIONID=1F7E942AC30122D1C7DBA22C429521B9; tfstk=cKKGBRTY1F71aDbHPcs6LYjFVa0dZV2F6iSeY3hEAYkCuZxFizaUz1sbK1hS_r1..; l=eBEVp-O4gnqzSzLbBOfwnurza77OIIRAguPzaNbMiOCPO75p5zbNW60wl4L9CnGVhsTMR3lRBzU9BeYBqo44n5U62j-la1Hmn; isg=BDw8SnVxcvXZcEU4ugf-vTadDdruNeBfG0WXdBa9WicK4dxrPkd97hHTxQmZqRi3',
    'referer': 'https://s.taobao.com/search?q=%E4%B8%9D%E8%A2%9C&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20220323&ie=utf8&bcoffset=1&ntoffset=1&p4ppushleft=2%2C48&s=',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36',
}

url = f'https://s.TB.com/search?q=%E4%B8%9D%E8%A2%9C&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20220323&ie=utf8&bcoffset=1&ntoffset=1&p4ppushleft=2%2C48&s={44*page}'

response = requests.get(url=url, headers=headers)

获取数据

html_data = response.text

解析数据(筛选数据)

json_str = re.findall('g_page_config = (.*);', html_data)[0]
# 字符串 肯定不能用 字典方式键值对取值
# json_str: 字符串
# 类型转变: 转成字典类型 才能通过键值对方式去取值
json_dict = json.loads(json_str)
auctions = json_dict['mods']['itemlist']['data']['auctions']
for auction in auctions:
    raw_title = auction['raw_title']
    pic_url = auction['pic_url']
    detail_url = auction['detail_url']
    view_price = auction['view_price']
    item_loc = auction['item_loc']
    view_sales = auction['view_sales']
    nick = auction['nick']
    print(raw_title, pic_url, detail_url, view_price, item_loc, view_sales, nick)

保存数据

with open('TB.csv', mode='a', encoding='utf-8', newline='') as f:
    csv_writer =csv.writer(f)
    csv_writer.writerow([raw_title, pic_url, detail_url, view_price, item_loc, view_sales, nick])

Python下载商品数据并连接数据库且保存数据

连接数据库

import pymysql

def save_sql(title, pic_url, detail_url, view_price, item_loc, view_sales, nick):
    count = pymysql.connect(
        host='xxx.xxx.xxx.xxx',  # 数据库地址
        port=3306,  # 数据库端口
        user='xxxx',  # 数据库账号
        password='xxxx',  # 数据库密码
        db='xxxx'  # 数据库表名
    )
    # 创建数据库对象
    db = count.cursor()
    # 写入sql
    sql = f"insert into goods(title, pic_url, detail_url, view_price, item_loc, view_sales, nick) values ('{title}', '{pic_url}', '{detail_url}', {view_price}, '{item_loc}', '{view_sales}', '{nick}')"
    # 执行sql
    db.execute(sql)
    # 保存修改内容
    count.commit()
    db.close()

到此这篇关于Python下载商品数据并连接数据库且保存数据的文章就介绍到这了,更多相关Python下载并连接数保存数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现划词翻译
Apr 23 Python
Python实现二分查找算法实例
May 26 Python
利用ctypes提高Python的执行速度
Sep 09 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
python实现FTP服务器服务的方法
Apr 11 Python
python模块smtplib学习
May 22 Python
Python实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
Python ORM框架Peewee用法详解
Apr 29 Python
利用python实现平稳时间序列的建模方式
Jun 03 Python
python requests库的使用
Jan 06 Python
Python turtle编写简单的球类小游戏
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 #Python
Pandas数据结构之Series的使用
Mar 31 #Python
python获取字符串中的email
Mar 31 #Python
Python利用FlashText算法实现替换字符串
详解Python flask的前后端交互
Mar 31 #Python
ubuntu安装jupyter并设置远程访问的实现
You might like
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
Python简单计算文件夹大小的方法
2015/07/14 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
Python Grid使用和布局详解
2018/06/30 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
python os模块简单应用示例
2019/05/23 Python
详解Python打包分发工具setuptools
2019/08/05 Python
python字符串格式化方式解析
2019/10/19 Python
python实现KNN近邻算法
2020/12/30 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
网络程序员自荐信
2014/01/25 职场文书
临时用工协议书范本
2014/10/29 职场文书
小学新教师个人总结
2015/02/05 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
《假如》教学反思
2016/02/17 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python
使用MybatisPlus打印sql语句
2022/04/22 SQL Server