- 博客(59)
- 收藏
- 关注
原创 亚马逊库存管理sql记录
ANDcountry='美国'platform='亚马逊'ANDcountry='美国'country='美国'platform='亚马逊'''"预计销售天数",''"需备货量",
2025-01-20 09:09:49
531
原创 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
864
原创 字符串聚合方法
SELECT * FROM purchase_mapping WHERE platform = '亚马逊' AND country = '美国'
2025-01-09 11:35:16
308
原创 关于写入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
1278
原创 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
671
原创 python图片相似度测试
print(f"相似度得分: {similarity_score}")print(f"相似度得分: {similarity_score}")# 只保留最大的轮廓(假设产品主体是最大的轮廓)# 进行形态学操作去除小的噪声。# 使用阈值处理去除背景。# 使用掩膜提取产品主体。# 创建一个空白图像。
2024-12-02 09:36:21
323
1
原创 数据库python连接测试
") # 查询数据库版本。print(f"数据库版本: {db_version[0]}")"host": "", # 替换为您的数据库主机地址。"database": "", # 数据库名称。"user": "", # 数据库用户名。"password": "" # 数据库密码。"""测试与 PostgreSQL 数据库的连接"""print("成功连接到数据库!print(f"连接数据库失败: {e}")
2024-12-02 09:32:14
396
原创 爬虫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
1076
原创 关于亚马逊网站商品爬取小记
"广告排名", "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
1193
原创 常见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
1292
原创 Oracle 笔记
select ZDXMC 奖励等级,count(ZDXMC) 人数 from ODS_TEAC_RSC_RS_JZGJXKYHJXX aleft join ODS_TEAC_RSC_RS_ZDXB b on a.JLDJ=b.bhwhere ZDXMC is not nullgroup 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
457
2
原创 DML操作
select table_schema,table_name,column_name,column_type,column_comment from information_schema.columnswhere 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
319
原创 SQL语句笔记
在left join语句中,左表过滤必须放where条件中,右表过滤必须放on条件中.例题:你需要写一段 SQL 命令,筛选出过去一年中订单总量 少于10本 的 书籍 。注意:不考虑 上架(available from)距今 不满一个月 的书籍。并且 假设今天是 2019-06-23 。Books 表:±--------±-------------------±---------------+| book_id | name | available_from |±--
2022-03-28 12:47:18
844
原创 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 notebookimport matplotlib.pyplot as pltimport seaborn as snsplt.rcParams[‘font.sans-serif’] = ‘Song
2022-03-03 17:24:40
637
原创 mysql存储和自定义函数
select col_name,case when char_length(col_intro)>20 thenconcat(left(col_intro,20),'.....')else col_intro endfrom 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
290
转载 scrapy程序学习
douban.pyscrapy genspider douban movie.douban.comscrapy genspider taobao www.taobao.comimport scrapyfrom scrapy import Selector, Requestfrom scrapy.http import HtmlResponsefrom spider2107.items import MovieItemclass DoubanSpider(scrapy.Spider):
2022-02-16 11:31:40
131
原创 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
650
原创 数据库持久化
from threading import Threadimport requestsfrom bs4 import BeautifulSoupfrom re import subimport pymysqldef 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
236
原创 Mysql学习第四天
import pymysqlno = 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
1143
原创 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
616
原创 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
378
原创 Mysql学习第一天
数据库 —> 解决数据持久化问题 —> 不仅仅能够保存数据,更重要的是对数据的管理按照一定的结构组织和存储数据通过自定义的条件获取想要的数据不同的用户可以获取到不同的数据关系型数据库 —> 非关系型数据库1972 ---> Codd~ 1. 理论基础:关系代数 ---> 谓词逻辑/集合论~ 2. 具体表象:用二维表(行和列)组织和保存数据 行 ---> 记录(元组)tuple 列 ---> 字段(属性)at.
2022-02-07 19:05:25
537
原创 第八天 线程池和进程池
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
368
原创 第七天 线程安全和队列
1. 进程和线程进程:一个正则运行的应用程序就是一个进程;每一个进程会运行在其专用且受保护的内存空间中。线程:线程是执行任务的基本单位每一个进程至少要有一个线程(默认只有一个)单线程串行:如果要在一个线程中执行多个任务,任务是按顺序一个一个的执行进程 - 车间; 线程 - 工人2. 多线程多线程:在一个进程中创建多个线程;执行在多个线程中的任务,可以并发(同时)执行多线程原理:利用cpu空闲时间干活使用多线程方法一:直接创建Thread类的对象线程对象 = Thread(target=
2022-01-18 21:04:35
265
原创 第六天 多线程和多进程
爬虫复习第一步:获取网页数据流程:确定目标网站 -> 确定技术(直接requests发送(加user-agent、加cookie)、找数据接口、使用selenium)反爬:浏览器身份验证反爬(加user-agent)、登录反爬(requests的headers中添加cookie、selenium加cookie)、封IP反爬第二步:解析数据正则bs4(基于css选择器的解析器)lxml(基于xpath的解析器)第三步:保存数据csv、excel1.多线程1)主线程一个进程默认
2022-01-17 21:22:38
493
原创 第五天 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
326
原创 第四天 常见反爬
登录反爬操作from selenium.webdriver import Chrome, ChromeOptionsfrom 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
513
原创 第三天 selenium的使用
from selenium.webdriver import Chromefrom 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
268
原创 第二天 详情页和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
294
原创 第一天 学习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
507
原创 第二十三天 邮件自动发送和HTML
1.准备工作准备邮箱账号和密码(密码有的时候不一定是邮箱密码,有可能是邮箱授权码)账号:1111111111@qq.com密码(授权码):pertpppqffcvbggjg2.登录邮箱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
237
原创 第二十二天 Word文件操作
# 注意:使用docx之前需要先安装第三方库:python-docxfrom docx import Document# 导入数值计量单位:Inches- 英尺、Cm - 厘米、Pt - 像素from docx.shared import Inches, Cm, Pt1. 创建空文档doc = Document()2. 添加内容1)文档对象.add_heading(text=’’, level=1) - 添加指定级别的标题,并且返回标题对象# text - 标题内容# level -
2021-12-28 20:11:58
689
原创 第二十一天 CSV和PDF文件操作
import csv1. 创建reader1) csv.reader(文件对象) - 获取指定csv文件中的内容,返回一些迭代器,迭代器中的元素是每一行数据对应一个列表2) csv.DictReader(文件对象) - 获取指定csv文件中的内容,返回一些迭代器,迭代器中的元素是每一行数据对应一个字典reader1 = csv.reader(open('files/北京高档酒店价格分析.csv'))reader2 = csv.DictReader(open('files/北京高档酒店价格
2021-12-27 21:21:36
296
原创 第二十天 自动化办公
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
526
原创 第十九天 正则表达式
继承:让子类直接拥有父类所有的属性和方法“”"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
431
原创 第十八天 类和对象
class 类名:类的说明文档类的内容(对象方法、类方法、静态方法 + 对象属性、类属性)1. 对象方法方法指的就是定义在类中的函数。1)怎么定义: 直接定义(不需要添加任何装饰器)在类中函数就是对象方法2)怎么调用: 通过 '对象.xx()'的形式来调用3)特点: 每个对象方法都有一个默认参数self,在通过对象调用对象方法的时候self不需要传参,系统会自动将当前对象传给self(self谁调用就指向谁)# 定义类class Person: # 在类中定义一个对象方法
2021-12-22 21:50:17
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅