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 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 Python
Python获取指定文件夹下的文件名的方法
Feb 06 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
用Python将mysql数据导出成json的方法
Aug 21 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
Python 微信之获取好友昵称并制作wordcloud的实例
Feb 21 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
python 链接sqlserver 写接口实例
Mar 11 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
django中ImageField的使用详解
Dec 21 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
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
js实现简单模态框实例
2018/11/16 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Python简单进程锁代码实例
2015/04/27 Python
python获取代码运行时间的实例代码
2018/06/11 Python
Python 读写文件的操作代码
2018/09/20 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
python绘制热力图heatmap
2020/03/23 Python
python实现一个简单的ping工具方法
2019/01/31 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
thinkphp5 路由分发原理
2021/03/18 PHP
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
Python Django获取URL中的数据详解
2021/11/01 Python
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS