工作笔记--自动化

以前习惯于在本地记笔记,后受到启发,想试着记录在。

从事在一家跨境电商公司,工作中重复性内容较多,且有对数据处理,清洗的需求,因此自学了python,就编写了一些脚本辅助工作。

环境:python 3

要求:

从平台上复制出单的ASIN,SKU,以及价格。

思路:

1,将网页复制粘贴在本地文本中

2,编写正则表达式,分别匹配 ASIN,SKU,价格。

最开始想的是在剪切板中直接匹配,无奈公司的电脑没有瞎折腾,就没有导入pyperclip库,就只能直接复制下来(摊手)

代码实现:


#coding = utf - 8

import os

import re

ASINRegex = re.compile(r'B07\w+') #匹配ASIN

SKURegex = re.compile(r'\w+-#\w+') #匹配SKU

PriceRegex = re.compile(r'小计:(.*)?') #匹配价格

MyFile = open('F:\\ASIN-SKU.txt')  

txt = MyFile.read()

MyFile.close()

Filename = []     #创建列表

#将匹配到的ASIN,SKU,价格存入到列表中

for groups in ASINRegex.findall(txt):

    Filename.append(groups)

    #print (groups)

for sku in SKURegex.findall(txt):

    Filename.append(sku)

for Price in PriceRegex.findall(txt):

    Filename.append(Price)

if len(Filename) > 0:

    print('\n'.join(Filename))   #打印列表

else:

    print('Not Find')

我们亚马逊- -主要是以铺货为主,单从模板下的几万个产品的标题可能都是相似的,就几个单词不同(标题中的关键词是抓取图片名字),于是就写了个更换标题的脚本。

要求:

更改每个listing的标题。

思路:

将原来模板中的图片关键词抓取出来
创建一个已经取好的一个标题列表
将图片关键词放入到标题列表中

代码实现:

#coding = utf - 8

import os
import random
import re

titles=['(W)Lunch Bag, Soft Cooler Portable Lunch Tote for Women Men Adults, Durable Washable Waterproof','Gourmet Getaway  Lunch Tote,(W)','Lunch Bag Tote Bag Lunch Organizer Lunch Holder Lunch Container (W)','(W)Lunch Bags for Women, e Lunch Bag for Girls','(W)Patterned  Lunch Bag / Box','Lunch Tote , Classic Durable Picnic Bag - Easy to Carry to School, Office, Picnic (W)','(W)Fit & Fresh  Lunch Bag for Women & Girls with Ice Pack, Ideal for Work & School','Insulated Lunch Bag for Adults ,Kids ,Men ,Women,  Lunch Totes(W)','Large Insulated Lunch Tote Bag (W)Reusable Neoprene Cooler , Follow Your Dream Quote Portable Lunchbox Handbag with Shoulder Strap','(W)Lunch Tote Bag Reusable Neoprene Cooler, Chinese Japanese Style Portable Lunchbox Handbag for Men Women Adult Kids Boys Girls','Neoprene Lunch Bag Insulated Lunch Tote Bags Boxes for Adults Men Women Kids Boys Nurses Teens ((W)bag with pocket)','(W)Neoprene Lunch Bag Insulated Lunch Box Tote for Women Men Adult Kids Teens Boys Teenage Girls Toddlers','(W)Lunch Box Cooler Bag Tote Bento Pouch Lunch Container Handbag']
#创建标题

tagsRegex = re.compile(r'(.*)?Lunch Bag, Soft Cooler Portable Lunch Tote For Women Men Adults, Durable Washable Waterproof')  #正则匹配关键词

tags = open('F:\\tags.txt')  #将所有listing的标题放入文本中
ostags = open('F:\\32 lunch tags title.txt','w+') #创建一个处理完后标题的文本
#ostags.write('处理完成的title:')
TXT = tags.read()

for groups in tagsRegex.findall(TXT):
    random.shuffle(titles)
    #print(groups)
    for modification in range(len(titles)):
        #print(modification)
        #print(len(titles))
        modificationtitle = titles[modification]
    title = modificationtitle.replace('(W)',groups)#修改字符串
    ostags.write('\n%s' % (title))    #将标题写入文本
    #print(title)

ostags.close()       
tags.close()

工作中还需要用到大量的图片,需要编写许多爬虫(目前正在学习scrapy),在抓取图片后还需要截取图片关键词(英语硬伤,需借助关键词命名标题)。

要求:

批量更改图片名,文件名

思路:

遍历出所有的图片名
截取图片格式,截取需要的图片关键词
批量改名,(当初编写的时候遇到,更改后与文件名同名的报错,那时候还不会用try,最后机智使用if语句-:)

代码实现:

#coding = utf - 8


import os


fileAllName = os.listdir("F:\\总图库3\\800x800")  # 图片目录位置


i = 0

for name in fileAllName:
          
    pictureFormat = fileAllName[i][fileAllName[i].find(".png"):]  # 读出图片格式
    # print(pictureFormat)

    pictureName = fileAllName[i][:fileAllName[i].find("-")]  # 读出-前面的名称

    newName = pictureName + pictureFormat   #新名称
    # print(newName)

    test_fileName = os.path.exists("F:\\总图库3\\800x800\\" +newName)  #测试是否存在同文件名
    #print(test_fileName)

    if not test_fileName:
        os.rename("F:\\总图库3\\800x800\\" + fileAllName[i], "F:\\总图库3\\800x800\\" + newName)
    else:
        newName = pictureName+ "%d"%i + pictureFormat 
        os.rename("F:\\总图库3\\800x800\\" + fileAllName[i], "F:\\总图库3\\800x800\\" + newName)
    i = i + 1

最后是设计产品,是在某个平台上设计(只要点击需要设计listing,然后点击图片点保存。ps:最繁琐的工作量),本来想用python实现,不过后面找到了可代替的按键精灵。

要求:

循环点击图片设计,循环下一页,保存设计的产品

思路

模拟鼠标键盘的坐标,
从左到右设立循环
跳转到下一行,
翻页循环

代码实现

LockMouse
MoveTo 175, 347
#起始点坐标
MoveR 0, 50
#向下移动,控制跳转下一行
For 5
GetCursorPos x, y
#每次保存向下移动的位置记录在坐标中,5列5行,循环5次
For 5
#控制从左到右循环,开始设计产品.
Delay 500
LeftClick 1
KeyDown "Ctrl", 1
KeyDown "X", 1
KeyUp "Ctrl", 1
KeyUp "X", 1
Delay 500
GetCursorPos a, b
MoveTo 1054, 339
Delay 500
LeftClick 1
MoveTo a, b
KeyDown "Ctrl", 1
KeyDown "S", 1
KeyUp "Ctrl", 1
KeyUp "S", 1
Delay 500
KeyDown "BackSpace", 1
KeyUp "BackSpace", 1
Delay 80
MoveR 50, 0
Next
Delay 500
MoveTo x, y
#回到最开始的坐标,向下移动50
MoveR 0, 50
Next
MoveTo 263, 632
#移动到下一页(按钮)的坐标位置
Delay 500
LeftClick 1
Delay 2000

你可能感兴趣的:(工作笔记--自动化)