- 博客(59)
- 收藏
- 关注
原创 亚马逊库存管理sql记录
ANDcountry='美国'platform='亚马逊'ANDcountry='美国'country='美国'platform='亚马逊'''"预计销售天数",''"需备货量",
2025-01-20 09:09:49
576
原创 python爬取亚马逊best-selling商品信息代码
rating_count = int(rating_text.split(",")[1].strip().split(" ")[0]) # 评分数量。rating_score = float(rating_text.split(" ")[0]) # 评分。print(f"ASIN: {asin} - 图片 URL 抓取失败: {e}") # 记录错误信息。print(f"成功连接到浏览器,当前URL: {driver.current_url}")print("没有找到下一页按钮或无法点击:", e)
2025-01-15 10:54:29
939
原创 字符串聚合方法
SELECT * FROM purchase_mapping WHERE platform = '亚马逊' AND country = '美国'
2025-01-09 11:35:16
329
原创 关于写入excel数据前就设置文本格式,防止出现科学计数法
names_companies.append(name_company[0] if name_company else "") # 过滤空值。postal_codes.append(postal_code[0] if postal_code else "") # 确保输出为空字符串。customer_name = row['客户名称'] if '客户名称' in row else "" # 假设客户名称在“客户名称”列中。cities.append(city[0][0]) # 只添加城市名称。
2024-12-31 18:34:32
1369
原创 excel文件合并,每个excel名称插入excel列
if filename.endswith('.xls') and '@' in filename: # 只处理以 .xlsx 结尾且包含 @ 的文件。product_name = filename.split('@')[1].split('.')[0] # @ 右边的内容(去掉文件扩展名)product_code = filename.split('@')[0] # @ 左边的内容。output_file = os.path.join(folder_path, 'BOM材料.xlsx')
2024-12-06 10:27:42
709
原创 python图片相似度测试
print(f"相似度得分: {similarity_score}")print(f"相似度得分: {similarity_score}")# 只保留最大的轮廓(假设产品主体是最大的轮廓)# 进行形态学操作去除小的噪声。# 使用阈值处理去除背景。# 使用掩膜提取产品主体。# 创建一个空白图像。
2024-12-02 09:36:21
356
1
原创 数据库python连接测试
") # 查询数据库版本。print(f"数据库版本: {db_version[0]}")"host": "", # 替换为您的数据库主机地址。"database": "", # 数据库名称。"user": "", # 数据库用户名。"password": "" # 数据库密码。"""测试与 PostgreSQL 数据库的连接"""print("成功连接到数据库!print(f"连接数据库失败: {e}")
2024-12-02 09:32:14
417
原创 爬虫Google浏览器调用,跳过验证和账号输入
print("Chrome调试环境设置成功,可以开始运行爬虫代码")print("设置失败,请检查Chrome安装路径或尝试手动启动")print(f"等待端口开启...({i+1}/5)")print(f"启动Chrome失败: {e}")print("正在检查Chrome调试环境...")print("调试端口已成功开启")print("Chrome已启动")"""启动调试模式的Chrome""""""关闭所有Chrome进程""""""设置Chrome调试环境""""""检查端口是否开启"""
2024-12-02 09:31:19
1132
原创 关于亚马逊网站商品爬取小记
"广告排名", "ASIN", "图片URL", "sign"])df = pd.DataFrame(data, columns=["关键词", "商品名称", "搜索时间", "总排名",批次ID: {batch_id}")print(f"'{keyword}' 的总结果数: {len(results)}")"host": "*********", # 替换为您的数据库主机地址。print(f"正在搜索 '{keyword}'...")"password": "*******" # 数据库密码。
2024-12-02 09:28:34
1266
原创 常见sql问题备注
SELECT T2.列名,T1.列名 FROM 主表 T1, 匹配表 T2 WHERE T1.匹配列 LIKE CONCAT('%',concat(T2.匹配列,'%'));--执行后 sql create table ycrx_demp as select ''''''''''''''''''''''select * from 某表 limit 1;将查询结果选中然后按制表符,得到竖着的样例数据格式。--执行前 sql drop table ycrx_demp。
2023-05-08 18:01:16
1408
原创 Oracle 笔记
select ZDXMC 奖励等级,count(ZDXMC) 人数 from ODS_TEAC_RSC_RS_JZGJXKYHJXX a left join ODS_TEAC_RSC_RS_ZDXB b on a.JLDJ=b.bh where ZDXMC is not null group by ZDXMCselect floor((SYSDATE - to_date(birthday,‘yyyy-mm-dd’))/365) AS AGE from ODS_TEAC_SPZX_SP_RYXXselect
2022-06-27 18:37:23
477
2
原创 DML操作
select table_schema,table_name,column_name,column_type,column_comment from information_schema.columns where table_schema= ‘数据库库名’COMMENT ON TABLE STUDENT_INFO IS ‘学生信息表’;COMMENT ON COLUMN STUDENT_INFO.STU_ID IS ‘学号’; COMMENT ON COLUMN STUDENT_INFO.STU_NAME
2022-06-14 16:22:04
344
原创 SQL语句笔记
在left join语句中,左表过滤必须放where条件中,右表过滤必须放on条件中. 例题:你需要写一段 SQL 命令,筛选出过去一年中订单总量 少于10本 的 书籍 。 注意:不考虑 上架(available from)距今 不满一个月 的书籍。并且 假设今天是 2019-06-23 。 Books 表: ±--------±-------------------±---------------+ | book_id | name | available_from | ±--
2022-03-28 12:47:18
864
原创 Pandas的一些细节笔记
修改镜像源命令: pip3 config set global.index-url https://pypi.douban.com/simple 启动英文界面的jupyter notebook: LANGUAGE="" LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 jupyter notebook import matplotlib.pyplot as plt import seaborn as sns plt.rcParams[‘font.sans-serif’] = ‘Song
2022-03-03 17:24:40
663
原创 mysql存储和自定义函数
select col_name, case when char_length(col_intro)>20 then concat(left(col_intro,20),'.....') else col_intro end from tb_college; drop function if exists truncate_string; delimiter $ create function truncate_string( content varchar(12000), max_length i
2022-02-17 09:43:31
316
转载 scrapy程序学习
douban.py scrapy genspider douban movie.douban.com scrapy genspider taobao www.taobao.com import scrapy from scrapy import Selector, Request from scrapy.http import HtmlResponse from spider2107.items import MovieItem class DoubanSpider(scrapy.Spider):
2022-02-16 11:31:40
149
原创 Mysql学习第五天
create table `tb_result` ( `rq` date not null, `sf` char(1) not null ) engine=innodb; insert into `tb_result` values ('2017-04-09','胜'), ('2017-04-09','胜'), ('2017-04-09','负'), ('2017-04-09','负'), ('2017-04-10','胜'), ('2017-04
2022-02-11 20:15:35
661
原创 数据库持久化
from threading import Thread import requests from bs4 import BeautifulSoup from re import sub import pymysql def get_html(start): url = f'https://movie.douban.com/top250?start={start}&filter=' headers = { 'user-agent': 'Mozilla/5.0 (M
2022-02-11 20:09:26
249
原创 Mysql学习第四天
import pymysql no = int(input('部门编号:')) name = input('部门名称:') location = input('所在地:') # 1.创建连接对象 conn = pymysql.connect(host='10.7.190.82', port=3306, user='wangdachui', password='123123', database='hrs', cha
2022-02-10 17:27:38
1157
原创 Mysql学习第三天
– 如果存在就删除名为hrs的数据库 drop database if exists hrs; – 创建名为hrs的数据库并指定默认的字符集 create database hrs default charset utf8mb4; – 切换到hrs数据库 use hrs; – 创建部门表 create table tb_dept ( dno int not null comment ‘编号’, dname varchar(10) not null comment ‘名称’, dloc varchar(20)
2022-02-10 14:48:54
650
原创 Mysql学习第二天
– 如果存在名为school的数据库就删除它 drop database if exists school; – 创建名为school的数据库并设置默认的字符集和排序方式 create database school default character set utf8mb4; – 切换到school数据库上下文环境 use school; – 创建学院表 create table tb_college ( col_id int unsigned auto_increment comment ‘编号’, c
2022-02-08 19:17:04
413
原创 Mysql学习第一天
数据库 —> 解决数据持久化问题 —> 不仅仅能够保存数据,更重要的是对数据的管理 按照一定的结构组织和存储数据 通过自定义的条件获取想要的数据 不同的用户可以获取到不同的数据 关系型数据库 —> 非关系型数据库 1972 ---> Codd ~ 1. 理论基础:关系代数 ---> 谓词逻辑/集合论 ~ 2. 具体表象:用二维表(行和列)组织和保存数据 行 ---> 记录(元组)tuple 列 ---> 字段(属性)at.
2022-02-07 19:05:25
554
原创 第八天 线程池和进程池
from queue import Queue as T_Queue # 线程队列 from multiprocessing import Process, Queue as P_Queue # 进程队列 1. 线程间通信 同一个进程中的多个线程,数据可以直接共享 数据收集:定义全局容器,常用的容器 - 线程队列 (定义全局队列直接使用) 添加数据: 队列.put(数据) 获取数据: 队列.get() 、 队列.get(timeout=时间) 2. 进程间通信 只能通过进程队列来进行数据交流
2022-01-19 21:15:27
386
原创 第七天 线程安全和队列
1. 进程和线程 进程:一个正则运行的应用程序就是一个进程;每一个进程会运行在其专用且受保护的内存空间中。 线程:线程是执行任务的基本单位 每一个进程至少要有一个线程(默认只有一个) 单线程串行:如果要在一个线程中执行多个任务,任务是按顺序一个一个的执行 进程 - 车间; 线程 - 工人 2. 多线程 多线程:在一个进程中创建多个线程;执行在多个线程中的任务,可以并发(同时)执行 多线程原理:利用cpu空闲时间干活 使用多线程方法一:直接创建Thread类的对象 线程对象 = Thread(target=
2022-01-18 21:04:35
296
原创 第六天 多线程和多进程
爬虫复习 第一步:获取网页数据 流程:确定目标网站 -> 确定技术(直接requests发送(加user-agent、加cookie)、找数据接口、使用selenium) 反爬:浏览器身份验证反爬(加user-agent)、登录反爬(requests的headers中添加cookie、selenium加cookie)、封IP反爬 第二步:解析数据 正则 bs4(基于css选择器的解析器) lxml(基于xpath的解析器) 第三步:保存数据 csv、excel 1.多线程 1)主线程 一个进程默认
2022-01-17 21:22:38
516
原创 第五天 xml和xpath的用法
复习 # 1. 字体反爬 # 字体文件格式: woff、woff2 # 在线预览:https://kekee000.github.io/fonteditor/ # int('4e00', base=16) # 2. 登录反爬 # 1)requests登录反爬: headers中添加'cookie'对应的键值 # 2)selenium登录反爬: # a.获取cookie值保存到本地: b.get_cookies() # b.使用cookie: 打开网页 -> 添加cookie -> 重新打开
2022-01-15 15:45:21
339
原创 第四天 常见反爬
登录反爬操作 from selenium.webdriver import Chrome, ChromeOptions from selenium.webdriver.common.keys import Keys # 1. 控制浏览器进入登录页面 options = ChromeOptions() options.add_experimental_option('excludeSwitches', ['enable-automation']) b = Chrome(options=options) b.
2022-01-13 21:20:41
532
原创 第三天 selenium的使用
from selenium.webdriver import Chrome from bs4 import BeautifulSoup # 1. 创建浏览器对象 b = Chrome() # 2. 在浏览器中输入网址 b.get('https://movie.douban.com/top250') # 3. 获取网页内容(当前浏览器显示的是哪个页面,获取就是那个页面的内容) # print(b.page_source) soup = BeautifulSoup(b.page_source, 'lxml'
2022-01-12 21:22:26
282
原创 第二天 详情页和json接口
# 2.requests # 请求、get/post、响应 headers = { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36' } response = requests.get('https://book.douban.com/', headers=headers)
2022-01-11 21:47:14
310
原创 第一天 学习requests
爬虫:用程序去获取网页上的数据 爬虫过程:1) 获取网页数据(requests、selenium)、 2)解析数据(正则表达式-re、css选择器-bs4、xpath-lxml) 3) 保存数据(数据库、csv文件、excel文件) 反反爬:user-agent(身份伪装,将爬虫程序伪装成浏览器)、登录反爬(设置cookie)、字体反爬 1. 获取网页数据 requests.get(网页地址) - 获取网页数据,返回一个响应对象 参数headers: 请求头,需要一个字典,这个字典有两个常见的键值对
2022-01-10 17:41:14
537
原创 第二十三天 邮件自动发送和HTML
1.准备工作 准备邮箱账号和密码(密码有的时候不一定是邮箱密码,有可能是邮箱授权码) 账号:1111111111@qq.com 密码(授权码):pertpppqffcvbggjg 2.登录邮箱 1)连接邮箱服务器 con = smtplib.SMTP_SSL(‘smtp.qq.com’, 465) 2)登录邮箱 con.login(‘1111111111@qq.com’, ‘pertpppqffcvbggjg’) 3.创建邮件 from email.mime.multipart import MIMEMul
2021-12-29 20:23:36
269
原创 第二十二天 Word文件操作
# 注意:使用docx之前需要先安装第三方库:python-docx from docx import Document # 导入数值计量单位:Inches- 英尺、Cm - 厘米、Pt - 像素 from docx.shared import Inches, Cm, Pt 1. 创建空文档 doc = Document() 2. 添加内容 1)文档对象.add_heading(text=’’, level=1) - 添加指定级别的标题,并且返回标题对象 # text - 标题内容 # level -
2021-12-28 20:11:58
738
原创 第二十一天 CSV和PDF文件操作
import csv 1. 创建reader 1) csv.reader(文件对象) - 获取指定csv文件中的内容,返回一些迭代器,迭代器中的元素是每一行数据对应一个列表 2) csv.DictReader(文件对象) - 获取指定csv文件中的内容,返回一些迭代器,迭代器中的元素是每一行数据对应一个字典 reader1 = csv.reader(open('files/北京高档酒店价格分析.csv')) reader2 = csv.DictReader(open('files/北京高档酒店价格
2021-12-27 21:21:36
313
原创 第二十天 自动化办公
1. 匹配类符号 普通符号 - 字符中在正则里面表示字符本身的符号、\n、\t、\u4e00 . - 匹配任意一个字符(多行匹配 - 不能和\n匹配;单行匹配(?s) - 可以和\n匹配) \d、\D、\s、\S、\w、\W [字符集]、[^字符集] 2. 控制次数 *、+、?、{N}、{M,N}、{M,}、{,N} *、+、?、{M,N}、{M,}、{,N} - 贪婪 *?、+?、??、{M,N}?、{M,}?、{,N}? - 非贪婪 3. 分组和分支 分组 - () 分支 - | 4.转
2021-12-25 18:04:55
539
原创 第十九天 正则表达式
继承:让子类直接拥有父类所有的属性和方法 “”" class 类名(父类1, 父类2,…): pass “”" class A: a = 10 def __init__(self): self.b = 20 self.c = 30 def func1(self): print('对象方法') @classmethod def func2(cls): print('类方法') @static
2021-12-23 21:38:05
445
原创 第十八天 类和对象
class 类名: 类的说明文档 类的内容(对象方法、类方法、静态方法 + 对象属性、类属性) 1. 对象方法 方法指的就是定义在类中的函数。 1)怎么定义: 直接定义(不需要添加任何装饰器)在类中函数就是对象方法 2)怎么调用: 通过 '对象.xx()'的形式来调用 3)特点: 每个对象方法都有一个默认参数self,在通过对象调用对象方法的时候self不需要传参, 系统会自动将当前对象传给self(self谁调用就指向谁) # 定义类 class Person: # 在类中定义一个对象方法
2021-12-22 21:50:17
157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅