NaiboWang-Alienware %!s(int64=2) %!d(string=hai) anos
pai
achega
e9d0caea95
Modificáronse 100 ficheiros con 5705 adicións e 1625 borrados
  1. 0 2
      C#/.gitignore
  2. 0 174
      C#/Class1.cs
  3. 0 83
      C#/Flow.Designer.cs
  4. 0 137
      C#/Flow.cs
  5. 0 414
      C#/Flow.resx
  6. 0 22
      C#/Program.cs
  7. 0 69
      C#/Properties/app.manifest
  8. 0 0
      C#/ServiceWrapperEntry/.gitignore
  9. 2 2
      C#/ServiceWrapperEntry/EasySpiderEntry.sln
  10. 0 0
      C#/ServiceWrapperEntry/Readme.md
  11. 2 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/.gitignore
  12. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/App.config
  13. 1 1
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Class1.cs
  14. 12 11
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Flow.Designer.cs
  15. 1 1
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Flow.cs
  16. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Flow.resx
  17. 1 1
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Program.cs
  18. 5 5
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/AssemblyInfo.cs
  19. 15 15
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Resources.Designer.cs
  20. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Resources.resx
  21. 6 6
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Settings.Designer.cs
  22. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Settings.settings
  23. 3 1
      C#/ServiceWrapperEntry/ServiceWrapperEntry/PublicVariable.cs
  24. 2 2
      C#/ServiceWrapperEntry/ServiceWrapperEntry/ServiceWrapperEntry.csproj
  25. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/ServiceWrapperEntry.csproj.user
  26. 15 15
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Start.Designer.cs
  27. 7 7
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Start.cs
  28. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/Start.resx
  29. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/favicon.ico
  30. 0 0
      C#/ServiceWrapperEntry/ServiceWrapperEntry/packages.config
  31. 0 107
      C#/Start.Designer.cs
  32. 0 255
      C#/Start.cs
  33. 0 189
      C#/WindowsFormsApp4.csproj
  34. 0 13
      C#/WindowsFormsApp4.csproj.user
  35. BIN=BIN
      C#/shortcut/.vs/shortcut/FileContentIndex/23f98718-32b2-4c38-b5b9-aa3fd9241e3a.vsidx
  36. BIN=BIN
      C#/shortcut/.vs/shortcut/FileContentIndex/392fedf3-4ef0-474a-95e3-6021f9c8513e.vsidx
  37. BIN=BIN
      C#/shortcut/.vs/shortcut/FileContentIndex/7456acef-50d7-43b8-aef3-f3c1a9799585.vsidx
  38. 0 0
      C#/shortcut/.vs/shortcut/FileContentIndex/read.lock
  39. BIN=BIN
      C#/shortcut/.vs/shortcut/v17/.suo
  40. 25 0
      C#/shortcut/shortcut.sln
  41. 0 0
      C#/shortcut/shortcut/App.config
  42. 48 0
      C#/shortcut/shortcut/Form1.Designer.cs
  43. 26 0
      C#/shortcut/shortcut/Form1.cs
  44. 120 0
      C#/shortcut/shortcut/Form1.resx
  45. 28 0
      C#/shortcut/shortcut/Program.cs
  46. 36 0
      C#/shortcut/shortcut/Properties/AssemblyInfo.cs
  47. 39 31
      C#/shortcut/shortcut/Properties/Resources.Designer.cs
  48. 0 0
      C#/shortcut/shortcut/Properties/Resources.resx
  49. 17 13
      C#/shortcut/shortcut/Properties/Settings.Designer.cs
  50. 0 0
      C#/shortcut/shortcut/Properties/Settings.settings
  51. 6 0
      C#/shortcut/shortcut/bin/Debug/shortcut.exe.config
  52. BIN=BIN
      C#/shortcut/shortcut/bin/Debug/shortcut.pdb
  53. 6 0
      C#/shortcut/shortcut/bin/Release/EasySpider_ShortCut.exe.config
  54. BIN=BIN
      C#/shortcut/shortcut/bin/Release/EasySpider_ShortCut.pdb
  55. 0 0
      C#/shortcut/shortcut/favicon.ico
  56. 4 0
      C#/shortcut/shortcut/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs
  57. BIN=BIN
      C#/shortcut/shortcut/obj/Debug/DesignTimeResolveAssemblyReferences.cache
  58. BIN=BIN
      C#/shortcut/shortcut/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  59. BIN=BIN
      C#/shortcut/shortcut/obj/Debug/shortcut.Form1.resources
  60. BIN=BIN
      C#/shortcut/shortcut/obj/Debug/shortcut.Properties.Resources.resources
  61. BIN=BIN
      C#/shortcut/shortcut/obj/Debug/shortcut.csproj.AssemblyReference.cache
  62. 1 0
      C#/shortcut/shortcut/obj/Debug/shortcut.csproj.CoreCompileInputs.cache
  63. 11 0
      C#/shortcut/shortcut/obj/Debug/shortcut.csproj.FileListAbsolute.txt
  64. BIN=BIN
      C#/shortcut/shortcut/obj/Debug/shortcut.csproj.GenerateResource.cache
  65. 0 0
      C#/shortcut/shortcut/obj/Debug/shortcut.csproj.SuggestedBindingRedirects.cache
  66. BIN=BIN
      C#/shortcut/shortcut/obj/Debug/shortcut.pdb
  67. 4 0
      C#/shortcut/shortcut/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs
  68. BIN=BIN
      C#/shortcut/shortcut/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
  69. BIN=BIN
      C#/shortcut/shortcut/obj/Release/EasySpider_ShortCut.pdb
  70. BIN=BIN
      C#/shortcut/shortcut/obj/Release/shortcut.Form1.resources
  71. BIN=BIN
      C#/shortcut/shortcut/obj/Release/shortcut.Properties.Resources.resources
  72. BIN=BIN
      C#/shortcut/shortcut/obj/Release/shortcut.csproj.AssemblyReference.cache
  73. 1 0
      C#/shortcut/shortcut/obj/Release/shortcut.csproj.CoreCompileInputs.cache
  74. 11 0
      C#/shortcut/shortcut/obj/Release/shortcut.csproj.FileListAbsolute.txt
  75. BIN=BIN
      C#/shortcut/shortcut/obj/Release/shortcut.csproj.GenerateResource.cache
  76. 0 0
      C#/shortcut/shortcut/obj/Release/shortcut.csproj.SuggestedBindingRedirects.cache
  77. 89 0
      C#/shortcut/shortcut/shortcut.csproj
  78. 0 0
      Examples/Sample Tasks/all_data.xls
  79. 0 0
      Examples/Sample Tasks/author_crawl.py
  80. 1882 0
      Examples/Sample Tasks/author_list.csv
  81. 0 0
      Examples/Sample Tasks/desc_crawl.py
  82. 0 0
      Examples/Sample Tasks/list.xlsx
  83. 0 0
      Examples/Sample Tasks/main.py
  84. 0 0
      Examples/Sample Tasks/raw_data.csv
  85. 0 0
      Examples/Sample Tasks/tianyancha.py
  86. 3227 0
      Examples/Sample Tasks/关键词 - Real.CSV
  87. 1 0
      Examples/Sample Tasks/关键词.CSV
  88. 0 1
      ExecuteStage/Readme.md
  89. 44 39
      ExecuteStage/easyspider_executestage.py
  90. 3 0
      ExecuteStage/generateEXE.cmd
  91. 0 1
      ExecuteStage/packageCommand.cmd
  92. 0 4
      ExecuteStage/packageCommand.md
  93. 0 0
      Extension/CN.crx
  94. 4 4
      Extension/EasySpider/_locales/en/messages.json
  95. 0 0
      Extension/EasySpider/images/api_thumb_450.jpg
  96. 0 0
      Extension/EasySpider/images/icon-128.png
  97. 0 0
      Extension/EasySpider/images/icon-16.png
  98. 0 0
      Extension/EasySpider/images/icon-19.png
  99. 0 0
      Extension/EasySpider/images/icon-38.png
  100. 0 0
      Extension/EasySpider/manifest.json

+ 0 - 2
C#/.gitignore

@@ -1,2 +0,0 @@
-obj/
-.vs/

+ 0 - 174
C#/Class1.cs

@@ -1,174 +0,0 @@
-using CefSharp;
-using CefSharp.Internals;
-using CefSharp.Web;
-using CefSharp.WinForms;
-using System;
-using System.ComponentModel;
-using System.Drawing;
-using System.Windows.Forms;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Runtime.InteropServices;
-
-namespace ServiceWrapper
-{
-    public class MouseHelper
-    {
-        [System.Runtime.InteropServices.DllImport("user32")]
-        public static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
-        //移动鼠标 
-        public const int MOUSEEVENTF_MOVE = 0x0001;
-        //模拟鼠标左键按下 
-        public const int MOUSEEVENTF_LEFTDOWN = 0x0002;
-        //模拟鼠标左键抬起 
-        public const int MOUSEEVENTF_LEFTUP = 0x0004;
-        //模拟鼠标右键按下 
-        public const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
-        //模拟鼠标右键抬起 
-        public const int MOUSEEVENTF_RIGHTUP = 0x0010;
-        //模拟鼠标中键按下 
-        public const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
-        //模拟鼠标中键抬起 
-        public const int MOUSEEVENTF_MIDDLEUP = 0x0040;
-        //标示是否采用绝对坐标 
-        public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
-        [DllImport("user32.dll")]
-        public static extern bool SetCursorPos(int X, int Y);
-    }
-    public class Parameters
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public string url { get; set; }
-    }
-
-    public class Data
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public int option { get; set; }
-        /// <summary>
-        /// 
-        /// </summary>
-        public Parameters parameters { get; set; }
-    }
-
-    public class FlowMessage
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public int type { get; set; }
-        /// <summary>
-        /// 
-        /// </summary>
-        public Data data { get; set; }
-    }
-
-    public class Message
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public int id { get; set; }
-        public string links { get; set; }
-        public string link { get; set; }
-        //键盘输入的值
-        public string keyboardStr { get; set; }
-        //直接转接流程图的消息
-        public string pipe { get; set; }
-    }
-
-
-    public class Msg
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public int type { get; set; }
-        /// <summary>
-        /// 从哪里来
-        /// </summary>
-        public int from { get; set; }
-        public Message message { get; set; }
-    }
-
-    public class RequestContextHandler : IRequestContextHandler
-    {
-        public IResourceRequestHandler GetResourceRequestHandler(IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
-        {
-            return null;
-        }
-
-        public bool OnBeforePluginLoad(string mimeType, string url, bool isMainFrame, string topOriginUrl, WebPluginInfo pluginInfo, ref PluginPolicy pluginPolicy)
-        {
-            return true;
-        }
-
-        public void OnRequestContextInitialized(IRequestContext requestContext)
-        {
-           
-        }
-    }
-    //加载窗口时的事件设置
-    public class RenderProcessMessageHandler : IRenderProcessMessageHandler
-    {
-        public void OnContextReleased(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
-        {
-            //throw new NotImplementedException();
-        }
-
-        public void OnFocusedNodeChanged(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IDomNode node)
-        {
-            //throw new NotImplementedException();
-        }
-
-        public void OnUncaughtException(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, JavascriptException exception)
-        {
-            //throw new NotImplementedException();
-        }
-
-        // Wait for the underlying JavaScript Context to be created. This is only called for the main frame.
-        // If the page has no JavaScript, no context will be created.
-        void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
-        {
-            //MessageBox.Show("zhixing");
-            
-        }
-    }
-
-    /// <summary>
-    /// 在自己窗口打开链接
-    /// </summary>
-    internal class OpenPageSelf : ILifeSpanHandler
-    {
-        public bool DoClose(IWebBrowser browserControl, IBrowser browser)
-        {
-            return false;
-        }
-
-        public void OnAfterCreated(IWebBrowser browserControl, IBrowser browser)
-        {
-           
-        }
-
-        public void OnBeforeClose(IWebBrowser browserControl, IBrowser browser)
-        {
-
-        }
-
-        public bool OnBeforePopup(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl,
-string targetFrameName, WindowOpenDisposition targetDisposition, bool userGesture, IPopupFeatures popupFeatures,
-IWindowInfo windowInfo, IBrowserSettings browserSettings, ref bool noJavascriptAccess, out IWebBrowser newBrowser)
-        {
-            newBrowser = null;
-            var chromiumWebBrowser = (ChromiumWebBrowser)browserControl;
-            chromiumWebBrowser.Load(targetUrl);
-            return true; //Return true to cancel the popup creation copyright by codebye.com.
-        }
-    }
-}

+ 0 - 83
C#/Flow.Designer.cs

@@ -1,83 +0,0 @@
-namespace ServiceWrapper
-{
-    partial class Flow
-    {
-        /// <summary>
-        /// 必需的设计器变量。
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// 清理所有正在使用的资源。
-        /// </summary>
-        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows 窗体设计器生成的代码
-
-        /// <summary>
-        /// 设计器支持所需的方法 - 不要修改
-        /// 使用代码编辑器修改此方法的内容。
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.components = new System.ComponentModel.Container();
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Flow));
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.timer1 = new System.Windows.Forms.Timer(this.components);
-            this.timer2 = new System.Windows.Forms.Timer(this.components);
-            this.SuspendLayout();
-            // 
-            // panel1
-            // 
-            this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-            this.panel1.AutoSize = true;
-            this.panel1.Location = new System.Drawing.Point(2, 3);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(923, 676);
-            this.panel1.TabIndex = 0;
-            // 
-            // timer1
-            // 
-            this.timer1.Interval = 500;
-            this.timer1.Tick += new System.EventHandler(this.timer1_Tick_1);
-            // 
-            // timer2
-            // 
-            this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
-            // 
-            // Flow
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(931, 713);
-            this.Controls.Add(this.panel1);
-            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.Name = "Flow";
-            this.Text = "服务包装手动版";
-            this.Load += new System.EventHandler(this.Flow_Load);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-
-
-
-        #endregion
-
-        private System.Windows.Forms.Panel panel1;
-        private System.Windows.Forms.Timer timer1;
-        private System.Windows.Forms.Timer timer2;
-    }
-}
-

+ 0 - 137
C#/Flow.cs

@@ -1,137 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using CefSharp;
-using CefSharp.WinForms;
-using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码
-using System.Net;
-using System.Diagnostics;
-
-namespace ServiceWrapper
-{
-
-    public partial class Flow : Form, IMessageFilter
-    {
-        public ChromiumWebBrowser chromeBrowser;
-        public bool ChromeNow = false; //标记现在所在窗口是否为chrome
-        public static string flowChartUrl = "http://183.129.170.180:8041/frontEnd/FlowChart.html?id="; //流程图所在的位置
-        public string url = flowChartUrl + "-1";
-        public Flow()
-        {
-            InitializeComponent();
-        }
-        public Flow(string link)
-        {
-            InitializeComponent();
-            url = link;
-        }
-        // P/Invoke declarations
-        [DllImport("user32.dll")]
-        public static extern IntPtr GetForegroundWindow();
-        [DllImport("user32.dll")]
-        private extern static bool SwapMouseButton(bool fSwap);
-        [System.Runtime.InteropServices.DllImport("user32.dll")]
-        public static extern int SetForegroundWindow(IntPtr hwnd);
-        public const int WM_CLOSE = 0x10;
-        public bool closedriver = true;
-        [DllImport("user32.dll", EntryPoint = "SendMessage")]
-        private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
-
-        public bool PreFilterMessage(ref System.Windows.Forms.Message SystemMessage)
-        {
-            if (SystemMessage.Msg >= 513 && SystemMessage.Msg <= 515)
-            {//不响应鼠标左键消息                
-                return true;
-            }
-            return false;
-        }
-        private void Flow_Load(object sender, EventArgs e)
-        {
-            InitializeChromium();
-            PublicVariable.isInitialized = true;
-            //保证并排平铺
-            int width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width;
-            int height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Height;
-            StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定
-            Location = (Point)new Size(0, 0);         //窗体的起始位置为(x,y)
-            Width = width;
-            Height = Convert.ToInt32(height * 0.8);
-            FormClosing += Flow_FormClosing;
-        }
-
-        //初始化浏览器并启动
-        public void InitializeChromium()
-        {
-            if (!PublicVariable.isInitialized)//只初始化一次
-            {
-                CefSettings settings = new CefSettings();
-                Cef.Initialize(settings);
-            }
-            // Create a browser component
-            chromeBrowser = new ChromiumWebBrowser(url);
-            //跨域访问允许
-            chromeBrowser.BrowserSettings.FileAccessFromFileUrls = CefState.Enabled;
-            chromeBrowser.BrowserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
-            //textBox1.Text = url;
-            // Add it to the form and fill it to the form window.
-            panel1.Controls.Add(chromeBrowser);
-            chromeBrowser.Dock = DockStyle.Fill;
-            chromeBrowser.RenderProcessMessageHandler = new RenderProcessMessageHandler();
-        }
-
-        //窗体关闭时,记得停止浏览器
-        private void Flow_FormClosing(object sender, FormClosingEventArgs e)
-        {
-            if(closedriver)
-            {
-                //Cef.Shutdown();//关掉内嵌控件
-                try
-                {
-                    //PublicVariable.chrome.Kill();//关掉chrome
-                    //SendMessage(Start.chromeId, WM_CLOSE, 0, 0);//关掉chrome
-                    Start.browser.Quit();//关掉chromedriver
-                }
-                catch (Exception)
-                {
-                }
-            }
-            PublicVariable.start.Show(); //重新显示初始框
-        }
-
-        private void timer1_Tick_1(object sender, EventArgs e)
-        {
-
-            if (Start.chromeId != GetForegroundWindow())
-            {
-                SwapMouseButton(false);
-            }
-            else
-            {
-                SwapMouseButton(true);
-            }
-            //textBox1.Text = "当前进程:" + Process.GetCurrentProcess().ProcessName +
-            //    ",当前激活的进程:" + ;
-            ////打开chrome,跳转初始输入网页界面,传回主程序chrome的进程id号,然后打开链接
-        }
-
-        private void panel1_Paint(object sender, PaintEventArgs e)
-        {
-            SetForegroundWindow(Start.chromeId); //打开流程图窗口后将chrome窗口显示到最前方
-        }
-
-        private void timer2_Tick(object sender, EventArgs e)
-        {
-            if (Start.chromeId == GetForegroundWindow())
-            {
-                SwapMouseButton(true);
-                timer1.Enabled = true; //打开检测鼠标的程序
-            }
-        }
-    }
-}

+ 0 - 414
C#/Flow.resx

@@ -1,414 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-  <metadata name="timer2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>107, 17</value>
-  </metadata>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA
-        AAD/////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////7+/v/+/v7//v7+///////+/v7//v7+////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////v7+//7+/v/+/v7/////////
-        /////////////////////////v7+//7+/v//////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////////////////////7+
-        /v/+/v7//v7+///////+/v7//v7+//////////////////7+/v/+/v7//v7+////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////+/v7//v7+/////////////v7+//7+/v/+/v7////////////+/v7//v7+//7+
-        /v//////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////v7+////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7//v7+////
-        /////////v7+//7+/v//////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////7+/v//////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////v7+//7+/v//////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////v7+//7+/v/+/v7////////////////////////////+/v7/+vr6/5eX
-        l/+YmJj/+vr6//7+/v//////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////7+/v/+/v7/////////////////////////
-        ///9/f3/4uLi/0lJSf8AAAD/AAAA/0lJSf/j4+P//f39////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////9/f3/ubm5/xkZGf8BAQH/AAAA/wAAAP8BAQH/GRkZ/7m5uf/+/v7//v7+////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////9/f3/kpKS/wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB
-        Af8GBgb/kpKS//7+/v/+/v7/////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////9/f3/hoaG/wICAv8AAAD/AAAA/wAA
-        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wICAv+FhYX//f39////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////7+/v/+/v7/q6ur/wQE
-        BP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AgIC/6ysrP/+/v7/////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///+/v7/9PT0/x8fH/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEB
-        Af8dHR3/9fX1////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////v7+/7W1tf8AAAD/AAAA/wICAv8aGhr/AwMD/wAAAP8AAAD/AAAA/wAA
-        AP8EBAT/Ghoa/wICAv8AAAD/AAAA/7a2tv//////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////7+/v+RkZH/AAAA/wAAAP8gICD/+/v7/9fX
-        1/9UVFT/AgIC/wICAv9VVVX/2NjY//v7+/8fHx//AAAA/wAAAP+SkpL/////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7/mpqa/wAA
-        AP8AAAD/Nzc3//7+/v/+/v7/ysrK/8TExP/Dw8P/ycnJ//7+/v/9/f3/ODg4/wAAAP8AAAD/mpqa////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////v7+/8PDw/8AAAD/AAAA/zU1Nf/+/v7//v7+/83Nzf+Wlpb/lpaW/87Ozv/+/v7//f39/zU1
-        Nf8AAAD/AAAA/8PDw///////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////7+/v/19fX/EBAQ/wAAAP8YGBj/4uLi/6mpqf8tLS3/AgIC/wEB
-        Af8tLS3/qqqq/+Hh4f8YGBj/AAAA/xAQEP/19fX/////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////v7+//7+/v/+/v7//v7+/1lZWf8AAAD/AQEB/wMD
-        A/8DAwP/Li4u/2xsbP9vb2//NDQ0/wICAv8DAwP/AAAA/wAAAP9ZWVn//f39////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////7+/v/+/v7/////////
-        //+0tLT/AAAA/wAAAP8JCQn/np6e/+/v7/+1tbX/srKy/+7u7v+qqqr/DAwM/wAAAP8BAQH/tLS0////
-        //////////////7+/v/+/v7/////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///+/v7//v7+////////////+Pj4/x4eHv8CAgL/mJiY/8XFxf8fHx//AQEB/wAAAP8aGhr/vr6+/6Wl
-        pf8BAQH/HR0d//j4+P/////////////////+/v7//v7+////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////7+/v99fX3/LS0t/+bm5v8YGBj/AAAA/wAA
-        AP8AAAD/AAAA/xQUFP/j4+P/MjIy/319ff/9/f3/////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7/3t7e/4GB
-        gf+BgYH/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/enp6/4WFhf/e3t7//v7+////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////39/f/n5+f/MzMz/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zIyMv/o6Oj//f39////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7//v7+////
-        ///////////////////////////////////+/v7/7+/v/wcHB/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
-        AP8HBwf/8fHx//7+/v//////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////v7+//7+/v///////////////////////////////////////f39/9jY2P+IiIj/fX19/zEx
-        Mf8ICAj/CAgI/y4uLv99fX3/iIiI/9nZ2f/+/v7/////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////////////////////Hx
-        8f9mZmb/KSkp/zY2Nv+ioqL/QUFB/z09Pf+kpKT/PDw8/ygoKP9oaGj/8fHx//7+/v//////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///+/v7//v7+//7+/v+CgoL/BwcH/wcHB/8BAQH/DQ0N/7Gxsf+rq6v/Dg4O/wEBAf8GBgb/BwcH/4OD
-        g//9/f3//v7+////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///+/v7//v7+//7+/v/+/v7//v7+//j4+P/29vb/LCws/wcHB/8HBwf/AAAA/wMDA/9lZWX/Y2Nj/wAA
-        AP8AAAD/BgYG/wcHB/8sLCz/9fX1//f39//+/v7//v7+//7+/v/+/v7//v7+////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////v7+//Pz8//X19f/vr6+/4iIiP8yMjL/srKy/wEBAf8GBgb/BAQE/wEB
-        Af8nJyf/aGho/2FhYf8lJSX/AQEB/wcHB/8HBwf/AQEB/7Kysv80NDT/iIiI/729vf/X19f/8vLy//7+
-        /v//////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////6Ojo/1RUVP8FBQX/AAAA/wAAAP8AAAD/AgIC/6Cg
-        oP/V1dX/rq6u/62trf+rq6v/ioqK/05OTv9QUFD/kJCQ/7CwsP+pqan/rq6u/9XV1f+fn5//AwMD/wAA
-        AP8AAAD/AAAA/wYGBv9UVFT/6enp//7+/v//////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////+vr6/z8/P/8BAQH/AAAA/wAA
-        AP8AAAD/AAAA/wcHB/+vr6//+fn5/xQUFP8ICAj/CAgI/wcHB/8JCQn/CAgI/wcHB/8HBwf/CAgI/xQU
-        FP/4+Pj/sLCw/wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP/6+vr/////////////////////////
-        /////////////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7//v7+/6am
-        pv8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf+Li4v//v7+//z8/P++vr7/v7+//4ODg/95eXn/2NjY/9LS
-        0v9ycnL/eXl5/8DAwP+9vb3//Pz8//39/f+Li4v/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/p6en//7+
-        /v////////////////////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
-        /v//////////////////////////////////////////////////////////////////////////////
-        /////////v7+//z8/P86Ojr/AAAA/wAAAP8AAAD/AAAA/wEBAf9QUFD/+/v7//7+/v/q6ur/GBgY/wkJ
-        Cf+ampr//f39//7+/v/+/v7//f39/5mZmf8ICAj/GBgY/+vr6//+/v7/+vr6/09PT/8BAQH/AAAA/wAA
-        AP8AAAD/AAAA/zo6Ov/8/Pz/////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////7+/v/c3Nz/BQUF/wAAAP8AAAD/AAAA/wgICP9nZ2f/8vLy//7+
-        /v/+/v7/pqam/wAAAP8BAQH/m5ub//7+/v////////////////+ampr/AAAA/wEBAf+mpqb//v7+//7+
-        /v/y8vL/Z2dn/wgICP8BAQH/AAAA/wAAAP8EBAT/3Nzc////////////////////////////////////
-        ///////////////////////////////////+/v7//v7+////////////////////////////////////
-        ///////////////////////////////////////////////////+/v7/+fn5/93d3f/Gxsb/vLy8/8nJ
-        yf/v7+///f39//7+/v///////f39/0RERP8AAAD/AgIC/+Dg4P//////////////////////39/f/wEB
-        Af8AAAD/Q0ND//39/f/+/v7//v7+//39/f/v7+//ycnJ/729vf/Gxsb/3Nzc//n5+f//////////////
-        /////////////////////////////////////////////////////////v7+//7+/v//////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////+/v7//v7+/7y8vP8BAQH/AAAA/zMzM//9/f3/////////
-        //////////////39/f80NDT/AAAA/wICAv+8vLz//v7+////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////////////////7+/v/+/v7//v7+/+jo6P8lJSX/AAAA/wEB
-        Af+Dg4P//v7+///////////////////////+/v7/g4OD/wEBAf8AAAD/JCQk/+rq6v/+/v7/////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7//f39/+np
-        6f89PT3/AAAA/wAAAP8AAAD/y8vL//7+/v///////////////////////////8vLy/8AAAD/AAAA/wAA
-        AP86Ojr/6enp////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///+/v7//f39/8jIyP8oKCj/AAAA/wEBAf8sLCz/DQ0N//j4+P/+/v7//v7+//7+/v//////////////
-        ///39/f/Dg4O/ywsLP8CAgL/AAAA/ykpKf/IyMj//v7+//7+/v////////////7+/v/+/v7/////////
-        //////////////////////////////////////////////////////////////7+/v/+/v7/////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////7+/v/9/f3/5+fn/29vb/8HBwf/AAAA/wEBAf9NTU3/2NjY/ysrK//+/v7///////7+
-        /v/+/v7//////////////////f39/ysrK//Y2Nj/TU1N/wEBAf8AAAD/BgYG/25ubv/o6Oj//f39//7+
-        /v/+/v7//v7+/////////////v7+//7+/v/+/v7//v7+/////////////v7+//7+/v/+/v7/////////
-        ///+/v7//v7+//7+/v//////////////////////////////////////////////////////////////
-        //////////////////////////////39/f/q6ur/fHx8/xAQEP8BAQH/AgIC/xISEv8qKir/9vb2//T0
-        9P86Ojr//v7+///////+/v7//v7+//////////////////39/f85OTn/8/Pz//X19f8qKir/ExMT/wEB
-        Af8AAAD/EBAQ/3x8fP/q6ur//v7+//7+/v////////////7+/v/+/v7//v7+//7+/v////////////7+
-        /v/+/v7//v7+//////////////////7+/v/+/v7/////////////////////////////////////////
-        ///////////////////////////////////+/v7//f39//Ly8v+CgoL/EhIS/wICAv8BAQH/CAgI/62t
-        rf+rq6v/cXFx//7+/v/9/f3/QUFB//39/f/+/v7////////////////////////////9/f3/QUFB//39
-        /f/+/v7/cXFx/6urq/+tra3/CAgI/wEBAf8CAgL/ExMT/4KCgv/x8fH//f39////////////////////
-        ///////////////////+/v7//v7+//7+/v//////////////////////////////////////////////
-        ///////////////////////////////////////////////////+/v7//f39/7S0tP8iIiL/AQEB/y4u
-        Lv9mZmb/AgIC/2ZmZv/9/f3/3t7e/7a2tv/+/v7//f39/4uLi//8/Pz//v7+////////////////////
-        /////////Pz8/4uLi//9/f3//v7+/7e3t//e3t7//f39/2ZmZv8CAgL/ZmZm/y4uLv8CAgL/IiIi/7Oz
-        s//9/f3//v7+//7+/v///////////////////////v7+//7+/v/+/v7/////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7/+vr6/3t7
-        e/8FBQX/ExMT/6Kiov/5+fn/ZWVl/wQEBP/U1NT//v7+//7+/v/+/v7//v7+//7+/v/9/f3//f39////
-        //////////////////////////////7+/v/9/f3//v7+//7+/v/+/v7//v7+///////U1NT/BAQE/2Vl
-        Zf/5+fn/oqKi/xISEv8FBQX/enp6//r6+v/+/v7//v7+////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///+/v7/+/v7/2xsbP8CAgL/BQUF/8HBwf/9/f3/9/f3/xYWFv83Nzf//f39////////////////////
-        ///+/v7//v7+////////////////////////////////////////////////////////////////////
-        /////////Pz8/zg4OP8YGBj/+Pj4//7+/v/BwcH/BwcH/wMDA/9sbGz//Pz8//7+/v//////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////f39/5WVlf8RERH/YWFh/1JSUv/+/v7//v7+/9LS0v8BAQH/fn5+//39
-        /f//////////////////////////////////////////////////////////////////////////////
-        //////////////////////////////////9+fn7/AgIC/9LS0v///////v7+/1NTU/9iYmL/ExMT/5SU
-        lP/9/f3///////////////////////////////////////////////////////////////////////7+
-        /v/+/v7//v7+/////////////////////////////////9/f3/8VFRX/vLy8/5aWlv+Ojo7//v7+//7+
-        /v+qqqr/AQEB/6qqqv/+/v7/////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////qamp/wEBAf+rq6v///////7+
-        /v+Ojo7/lpaW/7y8vP8WFhb/39/f//39/f//////////////////////////////////////////////
-        //////////////7+/v/+/v7//v7+//7+/v////////////////////////////39/f9oaGj/dnZ2//z8
-        /P+cnJz/n5+f////////////lZWV/wAAAP+4uLj/////////////////////////////////////////
-        /////////////////////////////////////////////////////////////////////////////7e3
-        t/8AAAD/lpaW///////+/v7/n5+f/5ycnP/9/f3/dnZ2/2hoaP/9/f3/////////////////////////
-        ///////////////////////////////////+/v7//v7+//7+/v/+/v7/////////////////////////
-        ///9/f3/Xl5e/+rq6v/+/v7/sbGx/5eXl////////////5OTk/8BAQH/oKCg//39/f//////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////////+hoaH/AQEB/5OTk//+/v7//v7+/5aWlv+wsLD//v7+/+np6f9eXl7//f39////
-        ///////////////////////////////////////////////////+/v7//v7+//7+/v//////////////
-        /////////////////////////v7+//39/f/9/f3//v7+/+3t7f/Z2dn///////////+enp7/Hh4e/11d
-        Xf/9/f3///////7+/v/+/v7//v7+////////////////////////////////////////////////////
-        ///////////////////////////////////9/f3/XV1d/x4eHv+fn5///v7+//7+/v/Z2dn/7e3t//7+
-        /v/+/v7//f39//7+/v///////////////////////////////////////////////////////v7+//7+
-        /v/+/v7//v7+//7+/v/+/v7////////////////////////////////////////////+/v7//v7+////
-        ////////t7e3/3R0dP9LS0v/0dHR//7+/v/+/v7//v7+//7+/v//////////////////////////////
-        //////////////////////////////////////////////7+/v/+/v7/0dHR/0tLS/9zc3P/t7e3////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
-        /////////////////////////////9ra2v9ra2v/5+fn/1RUVP/c3Nz//v7+////////////////////
-        //////////////////////////////////////////////////////////////7+/v/9/f3/3Nzc/1RU
-        VP/o6Oj/a2tr/9ra2v//////////////////////////////////////////////////////////////
-        ///////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+////////////////////
-        ///////////////////////////////////////////////////4+Pj/XV1d//z8/P/r6+v/bGxs/9HR
-        0f//////////////////////////////////////////////////////////////////////////////
-        ///+/v7/0dHR/2tra//r6+v//f39/1xcXP/4+Pj/////////////////////////////////////////
-        ///////////////////////////////////////////////////////////////////+/v7//v7+//7+
-        /v///////////////////////////////////////////////////////////////////////v7+/19f
-        X//8/Pz///////7+/v/8/Pz/////////////////////////////////////////////////////////
-        /////////////////////////v7+//z8/P/8/Pz//v7+//v7+/9gYGD//f39////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////v7+//7+/v/+/v7///////////////////////////////////////7+/v/+/v7//v7+////
-        //////////////7+/v+4uLj/+fn5///////+/v7//v7+////////////////////////////////////
-        ///////////////////////////////////////////////////+/v7//v7+//7+/v/5+fn/t7e3//39
-        /f//////////////////////////////////////////////////////////////////////////////
-        /////////////////////////////////////////////////////////v7+//7+/v/+/v7//v7+//7+
-        /v/+/v7//v7+//7+/v/////////////////+/v7//v7+//7+/v//////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////v7+//7+/v/+/v7/////////////////////////////////////////////////////////
-        //////////////////////////////////////////////////////////////////////////////7+
-        /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+
-        /v/+/v7/////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////v7+//7+/v/+/v7/////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        //////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ///+/v7//v7+////////////////////////////////////////////////////////////////////
-        ///////////////////////////////////+/v7//v7+//7+/v/+/v7/////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        ////////////////////////////////////////////////////////////////////////////////
-        /////////////////////////v7+//7+/v//////////////////////////////////////////////
-        ////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
-</value>
-  </data>
-</root>

+ 0 - 22
C#/Program.cs

@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-namespace ServiceWrapper
-{
-    static class Program
-    {
-        /// <summary>
-        /// 应用程序的主入口点。
-        /// </summary>
-        [STAThread]
-        static void Main()
-        {
-            Application.EnableVisualStyles();
-            Application.SetCompatibleTextRenderingDefault(false);
-            Application.Run(new Start());
-        }
-    }
-}

+ 0 - 69
C#/Properties/app.manifest

@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
-  <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
-    <security>
-      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
-        <!-- UAC 清单选项
-             如果想要更改 Windows 用户帐户控制级别,请使用
-             以下节点之一替换 requestedExecutionLevel 节点。n
-        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
-        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
-        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
-
-            指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
-            如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
-            元素。
-        -->
-        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
-      </requestedPrivileges>
-      <applicationRequestMinimum>
-        <defaultAssemblyRequest permissionSetReference="Custom" />
-        <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
-      </applicationRequestMinimum>
-    </security>
-  </trustInfo>
-  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
-    <application>
-      <!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
-           Windows 版本的列表。取消评论适当的元素,
-           Windows 将自动选择最兼容的环境。 -->
-      <!-- Windows Vista -->
-      <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
-      <!-- Windows 7 -->
-      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
-      <!-- Windows 8 -->
-      <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
-      <!-- Windows 8.1 -->
-      <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
-      <!-- Windows 10 -->
-      <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
-    </application>
-  </compatibility>
-  <!-- 指示该应用程序可以感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
-       自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
-       选择加入。选择加入此设置的 Windows 窗体应用程序(目标设定为 .NET Framework 4.6 )还应
-       在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。-->
-  <!--
-  <application xmlns="urn:schemas-microsoft-com:asm.v3">
-    <windowsSettings>
-      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
-    </windowsSettings>
-  </application>
-  -->
-  <!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
-  <!--
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity
-          type="win32"
-          name="Microsoft.Windows.Common-Controls"
-          version="6.0.0.0"
-          processorArchitecture="*"
-          publicKeyToken="6595b64144ccf1df"
-          language="*"
-        />
-    </dependentAssembly>
-  </dependency>
-  -->
-</assembly>

+ 0 - 0
ServiceWrapperEntry/.gitignore → C#/ServiceWrapperEntry/.gitignore


+ 2 - 2
ServiceWrapperEntry/ServiceWrapperEntry.sln → C#/ServiceWrapperEntry/EasySpiderEntry.sln

@@ -1,7 +1,7 @@
 
 
 Microsoft Visual Studio Solution File, Format Version 12.00
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29728.190
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32929.385
 MinimumVisualStudioVersion = 10.0.40219.1
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceWrapperEntry", "ServiceWrapperEntry\ServiceWrapperEntry.csproj", "{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}"
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceWrapperEntry", "ServiceWrapperEntry\ServiceWrapperEntry.csproj", "{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}"
 EndProject
 EndProject

+ 0 - 0
ServiceWrapperEntry/Readme.md → C#/ServiceWrapperEntry/Readme.md


+ 2 - 0
C#/ServiceWrapperEntry/ServiceWrapperEntry/.gitignore

@@ -0,0 +1,2 @@
+obj/*
+bin/*

+ 0 - 0
C#/App.config → C#/ServiceWrapperEntry/ServiceWrapperEntry/App.config


+ 1 - 1
ServiceWrapperEntry/ServiceWrapperEntry/Class1.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Class1.cs

@@ -12,7 +12,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using System.Runtime.InteropServices;
 using System.Runtime.InteropServices;
 
 
-namespace ServiceWrapper
+namespace EasySpider
 {
 {
     public class MouseHelper
     public class MouseHelper
     {
     {

+ 12 - 11
ServiceWrapperEntry/ServiceWrapperEntry/Flow.Designer.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Flow.Designer.cs

@@ -1,4 +1,4 @@
-namespace ServiceWrapper
+namespace EasySpider
 {
 {
     partial class Flow
     partial class Flow
     {
     {
@@ -39,20 +39,21 @@
             | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
             | System.Windows.Forms.AnchorStyles.Right)));
             this.panel1.AutoSize = true;
             this.panel1.AutoSize = true;
-            this.panel1.Location = new System.Drawing.Point(4, 6);
-            this.panel1.Margin = new System.Windows.Forms.Padding(6);
+            this.panel1.Location = new System.Drawing.Point(3, 4);
+            this.panel1.Margin = new System.Windows.Forms.Padding(4);
             this.panel1.Name = "panel1";
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(1846, 1352);
+            this.panel1.Size = new System.Drawing.Size(1231, 845);
             this.panel1.TabIndex = 0;
             this.panel1.TabIndex = 0;
             // 
             // 
             // button1
             // button1
             // 
             // 
             this.button1.AutoSize = true;
             this.button1.AutoSize = true;
             this.button1.Dock = System.Windows.Forms.DockStyle.Bottom;
             this.button1.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.button1.Font = new System.Drawing.Font("宋体", 16.125F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.button1.Location = new System.Drawing.Point(0, 1373);
+            this.button1.Font = new System.Drawing.Font("SimSun", 16.125F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.button1.Location = new System.Drawing.Point(0, 622);
+            this.button1.Margin = new System.Windows.Forms.Padding(2);
             this.button1.Name = "button1";
             this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(1862, 53);
+            this.button1.Size = new System.Drawing.Size(1241, 37);
             this.button1.TabIndex = 1;
             this.button1.TabIndex = 1;
             this.button1.Text = "←";
             this.button1.Text = "←";
             this.button1.UseVisualStyleBackColor = true;
             this.button1.UseVisualStyleBackColor = true;
@@ -61,15 +62,15 @@
             // 
             // 
             // Flow
             // Flow
             // 
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 24F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(1862, 1426);
+            this.ClientSize = new System.Drawing.Size(1241, 659);
             this.Controls.Add(this.button1);
             this.Controls.Add(this.button1);
             this.Controls.Add(this.panel1);
             this.Controls.Add(this.panel1);
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.Margin = new System.Windows.Forms.Padding(6);
+            this.Margin = new System.Windows.Forms.Padding(4);
             this.Name = "Flow";
             this.Name = "Flow";
-            this.Text = "服务包装手动版";
+            this.Text = "EasySpider: NoCode Visual Web Crawler";
             this.Load += new System.EventHandler(this.Flow_Load);
             this.Load += new System.EventHandler(this.Flow_Load);
             this.ResumeLayout(false);
             this.ResumeLayout(false);
             this.PerformLayout();
             this.PerformLayout();

+ 1 - 1
ServiceWrapperEntry/ServiceWrapperEntry/Flow.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Flow.cs

@@ -13,7 +13,7 @@ using System.Runtime.InteropServices; //引用此名称空间,简化后面的
 using System.Net;
 using System.Net;
 using System.Diagnostics;
 using System.Diagnostics;
 
 
-namespace ServiceWrapper
+namespace EasySpider
 {
 {
 
 
     public partial class Flow : Form, IMessageFilter
     public partial class Flow : Form, IMessageFilter

+ 0 - 0
ServiceWrapperEntry/ServiceWrapperEntry/Flow.resx → C#/ServiceWrapperEntry/ServiceWrapperEntry/Flow.resx


+ 1 - 1
ServiceWrapperEntry/ServiceWrapperEntry/Program.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Program.cs

@@ -6,7 +6,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Windows.Forms;
 
 
-namespace ServiceWrapper
+namespace EasySpider
 {
 {
     static class Program
     static class Program
     {
     {

+ 5 - 5
C#/Properties/AssemblyInfo.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/AssemblyInfo.cs

@@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
 // 有关程序集的一般信息由以下
 // 有关程序集的一般信息由以下
 // 控制。更改这些特性值可修改
 // 控制。更改这些特性值可修改
 // 与程序集关联的信息。
 // 与程序集关联的信息。
-[assembly: AssemblyTitle("ServiceWrapper")]
-[assembly: AssemblyDescription("服务包装手动版")]
+[assembly: AssemblyTitle("EasySpider")]
+[assembly: AssemblyDescription("Visual Web Crawler")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("浙江大学")]
-[assembly: AssemblyProduct("服务包装器")]
-[assembly: AssemblyCopyright("Copyright ©  2020")]
+[assembly: AssemblyCompany("Zhejiang University and National University of Singapore")]
+[assembly: AssemblyProduct("Web Crawler")]
+[assembly: AssemblyCopyright("Copyright ©  2023")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 [assembly: AssemblyCulture("")]
 
 

+ 15 - 15
C#/Properties/Resources.Designer.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Resources.Designer.cs

@@ -1,25 +1,25 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // <auto-generated>
 // <auto-generated>
-//     此代码由工具生成。
-//     运行时版本:4.0.30319.42000
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
 //
-//     对此文件的更改可能会导致不正确的行为,并且如果
-//     重新生成代码,这些更改将会丢失。
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
 // </auto-generated>
 // </auto-generated>
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 
 
-namespace ServiceWrapper.Properties {
+namespace EasySpider.Properties {
     using System;
     using System;
     
     
     
     
     /// <summary>
     /// <summary>
-    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
     /// </summary>
     /// </summary>
-    // 此类是由 StronglyTypedResourceBuilder
-    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
-    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
-    // (以 /str 作为命令选项),或重新生成 VS 项目。
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     internal class Resources {
     internal class Resources {
@@ -33,13 +33,13 @@ namespace ServiceWrapper.Properties {
         }
         }
         
         
         /// <summary>
         /// <summary>
-        ///   返回此类使用的缓存的 ResourceManager 实例。
+        ///   Returns the cached ResourceManager instance used by this class.
         /// </summary>
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
         internal static global::System.Resources.ResourceManager ResourceManager {
         internal static global::System.Resources.ResourceManager ResourceManager {
             get {
             get {
                 if (object.ReferenceEquals(resourceMan, null)) {
                 if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ServiceWrapper.Properties.Resources", typeof(Resources).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EasySpider.Properties.Resources", typeof(Resources).Assembly);
                     resourceMan = temp;
                     resourceMan = temp;
                 }
                 }
                 return resourceMan;
                 return resourceMan;
@@ -47,8 +47,8 @@ namespace ServiceWrapper.Properties {
         }
         }
         
         
         /// <summary>
         /// <summary>
-        ///   重写当前线程的 CurrentUICulture 属性
-        ///   重写当前线程的 CurrentUICulture 属性。
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
         /// </summary>
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
         internal static global::System.Globalization.CultureInfo Culture {
         internal static global::System.Globalization.CultureInfo Culture {

+ 0 - 0
C#/Properties/Resources.resx → C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Resources.resx


+ 6 - 6
ServiceWrapperEntry/ServiceWrapperEntry/Properties/Settings.Designer.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Settings.Designer.cs

@@ -1,18 +1,18 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // <auto-generated>
 // <auto-generated>
-//     此代码由工具生成。
-//     运行时版本:4.0.30319.42000
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
 //
-//     对此文件的更改可能会导致不正确的行为,并且如果
-//     重新生成代码,这些更改将会丢失。
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
 // </auto-generated>
 // </auto-generated>
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 
 
-namespace ServiceWrapper.Properties {
+namespace EasySpider.Properties {
     
     
     
     
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")]
     internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
     internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
         
         
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

+ 0 - 0
C#/Properties/Settings.settings → C#/ServiceWrapperEntry/ServiceWrapperEntry/Properties/Settings.settings


+ 3 - 1
C#/PublicVariable.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/PublicVariable.cs

@@ -17,7 +17,7 @@ using Newtonsoft.Json;
 using System.Runtime.InteropServices;
 using System.Runtime.InteropServices;
 using System.Diagnostics;
 using System.Diagnostics;
 
 
-namespace ServiceWrapper
+namespace EasySpider
 {
 {
     class PublicVariable
     class PublicVariable
     {
     {
@@ -26,5 +26,7 @@ namespace ServiceWrapper
         public static Start start = null;
         public static Start start = null;
         public static Flow fr = null;
         public static Flow fr = null;
         public static Process chrome = null;
         public static Process chrome = null;
+        public static string frontEndAddress = "https://servicewrapper.systems";
+        public static string backEndAddress = "https://servicewrapper.systems";
     }
     }
 }
 }

+ 2 - 2
ServiceWrapperEntry/ServiceWrapperEntry/ServiceWrapperEntry.csproj → C#/ServiceWrapperEntry/ServiceWrapperEntry/ServiceWrapperEntry.csproj

@@ -10,8 +10,8 @@
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
     <ProjectGuid>{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}</ProjectGuid>
     <ProjectGuid>{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}</ProjectGuid>
     <OutputType>WinExe</OutputType>
     <OutputType>WinExe</OutputType>
-    <RootNamespace>ServiceWrapper</RootNamespace>
-    <AssemblyName>ServiceWrapper</AssemblyName>
+    <RootNamespace>EasySpider</RootNamespace>
+    <AssemblyName>EasySpider</AssemblyName>
     <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
     <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <FileAlignment>512</FileAlignment>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

+ 0 - 0
ServiceWrapperEntry/ServiceWrapperEntry/ServiceWrapperEntry.csproj.user → C#/ServiceWrapperEntry/ServiceWrapperEntry/ServiceWrapperEntry.csproj.user


+ 15 - 15
ServiceWrapperEntry/ServiceWrapperEntry/Start.Designer.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Start.Designer.cs

@@ -1,4 +1,4 @@
-namespace ServiceWrapper
+namespace EasySpider
 {
 {
     partial class Start
     partial class Start
     {
     {
@@ -40,58 +40,58 @@
             this.button1.Location = new System.Drawing.Point(60, 66);
             this.button1.Location = new System.Drawing.Point(60, 66);
             this.button1.Margin = new System.Windows.Forms.Padding(4);
             this.button1.Margin = new System.Windows.Forms.Padding(4);
             this.button1.Name = "button1";
             this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(196, 75);
+            this.button1.Size = new System.Drawing.Size(322, 75);
             this.button1.TabIndex = 1;
             this.button1.TabIndex = 1;
-            this.button1.Text = "包装/修改/查看服务";
+            this.button1.Text = "Design Task";
             this.button1.UseVisualStyleBackColor = true;
             this.button1.UseVisualStyleBackColor = true;
             this.button1.Click += new System.EventHandler(this.button1_Click);
             this.button1.Click += new System.EventHandler(this.button1_Click);
             // 
             // 
             // label1
             // label1
             // 
             // 
             this.label1.AutoSize = true;
             this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(15, 29);
+            this.label1.Location = new System.Drawing.Point(41, 29);
             this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.label1.Name = "label1";
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(88, 16);
+            this.label1.Size = new System.Drawing.Size(89, 20);
             this.label1.TabIndex = 2;
             this.label1.TabIndex = 2;
-            this.label1.Text = "程序状态:";
+            this.label1.Text = "Status: ";
             // 
             // 
             // State
             // State
             // 
             // 
             this.State.AutoSize = true;
             this.State.AutoSize = true;
-            this.State.Location = new System.Drawing.Point(102, 29);
+            this.State.Location = new System.Drawing.Point(113, 30);
             this.State.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.State.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
             this.State.Name = "State";
             this.State.Name = "State";
-            this.State.Size = new System.Drawing.Size(200, 16);
+            this.State.Size = new System.Drawing.Size(289, 20);
             this.State.TabIndex = 3;
             this.State.TabIndex = 3;
-            this.State.Text = "请点击相应操作按钮使用。";
+            this.State.Text = "Click Button below to start.";
             // 
             // 
             // button2
             // button2
             // 
             // 
             this.button2.Location = new System.Drawing.Point(60, 163);
             this.button2.Location = new System.Drawing.Point(60, 163);
             this.button2.Margin = new System.Windows.Forms.Padding(4);
             this.button2.Margin = new System.Windows.Forms.Padding(4);
             this.button2.Name = "button2";
             this.button2.Name = "button2";
-            this.button2.Size = new System.Drawing.Size(196, 75);
+            this.button2.Size = new System.Drawing.Size(322, 75);
             this.button2.TabIndex = 4;
             this.button2.TabIndex = 4;
-            this.button2.Text = "查看/调用/删除服务";
+            this.button2.Text = "View/Manage/Invoke Tasks";
             this.button2.UseVisualStyleBackColor = true;
             this.button2.UseVisualStyleBackColor = true;
             this.button2.Click += new System.EventHandler(this.button2_Click);
             this.button2.Click += new System.EventHandler(this.button2_Click);
             // 
             // 
             // Start
             // Start
             // 
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 20F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(340, 260);
+            this.ClientSize = new System.Drawing.Size(455, 260);
             this.Controls.Add(this.button2);
             this.Controls.Add(this.button2);
             this.Controls.Add(this.State);
             this.Controls.Add(this.State);
             this.Controls.Add(this.label1);
             this.Controls.Add(this.label1);
             this.Controls.Add(this.button1);
             this.Controls.Add(this.button1);
-            this.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
             this.Margin = new System.Windows.Forms.Padding(4);
             this.Margin = new System.Windows.Forms.Padding(4);
             this.MaximizeBox = false;
             this.MaximizeBox = false;
             this.Name = "Start";
             this.Name = "Start";
-            this.Text = "面向Web资源的服务封装系统";
+            this.Text = "EasySpider: NoCode Visual Web Crawler";
             this.Load += new System.EventHandler(this.Start_Load);
             this.Load += new System.EventHandler(this.Start_Load);
             this.ResumeLayout(false);
             this.ResumeLayout(false);
             this.PerformLayout();
             this.PerformLayout();

+ 7 - 7
ServiceWrapperEntry/ServiceWrapperEntry/Start.cs → C#/ServiceWrapperEntry/ServiceWrapperEntry/Start.cs

@@ -18,7 +18,7 @@ using System.Runtime.InteropServices;
 using System.Diagnostics;
 using System.Diagnostics;
 using System.Threading;
 using System.Threading;
 
 
-namespace ServiceWrapper
+namespace EasySpider
 {
 {
     public partial class Start : Form
     public partial class Start : Form
     {
     {
@@ -73,7 +73,7 @@ namespace ServiceWrapper
             {
             {
                 socke.OnOpen = () =>
                 socke.OnOpen = () =>
                 {
                 {
-                    BeginInvoke(new ConnectionChange(ModifyState), new object[] { "与浏览器连接已建立,请使用。" });
+                    BeginInvoke(new ConnectionChange(ModifyState), new object[] { "Connected to the browser, can start now." });
                 };
                 };
                 socke.OnClose = () =>
                 socke.OnClose = () =>
                 {
                 {
@@ -129,7 +129,7 @@ namespace ServiceWrapper
             }
             }
             catch (Exception)
             catch (Exception)
             {
             {
-                MessageBox.Show("输入模块初始化失败,请退出360之类的安全软件!");
+                MessageBox.Show("Initialization failed, please quit anti-virus softwares such as 360!");
                 Application.Exit();
                 Application.Exit();
             }
             }
         }
         }
@@ -193,7 +193,7 @@ namespace ServiceWrapper
                 }
                 }
                 catch (Exception)
                 catch (Exception)
                 {
                 {
-                    MessageBox.Show("输入失败,请退出360之类的安全软件!");
+                    MessageBox.Show("Input form/textbox failed, please quit anti-virus softwares such as 360!");
                 }
                 }
                
                
             }
             }
@@ -210,7 +210,7 @@ namespace ServiceWrapper
             }
             }
             else if (msg.type == 5)
             else if (msg.type == 5)
             {
             {
-                string FileName = Application.StartupPath + @"/Chrome/ServiceWrapper_ExcuteStage.exe"; //启动的应用程序名称
+                string FileName = Application.StartupPath + @"/Chrome/easyspider_executestage.exe"; //启动的应用程序名称
                 string arguments = msg.message.id.ToString() + " " + PublicVariable.backEndAddress;
                 string arguments = msg.message.id.ToString() + " " + PublicVariable.backEndAddress;
                 Process.Start(FileName, arguments); //启动执行程序
                 Process.Start(FileName, arguments); //启动执行程序
             }
             }
@@ -232,9 +232,9 @@ namespace ServiceWrapper
             fr = new Flow(); //先创造流程图界面,暂时隐藏不显示
             fr = new Flow(); //先创造流程图界面,暂时隐藏不显示
             fr.Show();
             fr.Show();
             fr.Hide();
             fr.Hide();
-            State.Text = "加载中……";
+            State.Text = "Loading...";
             ChromeOptions options = new ChromeOptions();
             ChromeOptions options = new ChromeOptions();
-            options.AddExtension(Application.StartupPath + @"/ServiceWrapper.crx");
+            options.AddExtension(Application.StartupPath + @"/EasySpider.crx");
             browser = new ChromeDriver(Application.StartupPath +@"/Chrome", options);
             browser = new ChromeDriver(Application.StartupPath +@"/Chrome", options);
             browser.Navigate().GoToUrl(serviceListUrl); //默认可以修改服务
             browser.Navigate().GoToUrl(serviceListUrl); //默认可以修改服务
             //ProcessStartInfo startInfo = new ProcessStartInfo();
             //ProcessStartInfo startInfo = new ProcessStartInfo();

+ 0 - 0
C#/Start.resx → C#/ServiceWrapperEntry/ServiceWrapperEntry/Start.resx


+ 0 - 0
C#/favicon.ico → C#/ServiceWrapperEntry/ServiceWrapperEntry/favicon.ico


+ 0 - 0
C#/packages.config → C#/ServiceWrapperEntry/ServiceWrapperEntry/packages.config


+ 0 - 107
C#/Start.Designer.cs

@@ -1,107 +0,0 @@
-namespace ServiceWrapper
-{
-    partial class Start
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Start));
-            this.button1 = new System.Windows.Forms.Button();
-            this.label1 = new System.Windows.Forms.Label();
-            this.State = new System.Windows.Forms.Label();
-            this.button2 = new System.Windows.Forms.Button();
-            this.SuspendLayout();
-            // 
-            // button1
-            // 
-            this.button1.Location = new System.Drawing.Point(60, 66);
-            this.button1.Margin = new System.Windows.Forms.Padding(4);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(196, 75);
-            this.button1.TabIndex = 1;
-            this.button1.Text = "包装/修改/查看服务";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
-            // 
-            // label1
-            // 
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(15, 29);
-            this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(88, 16);
-            this.label1.TabIndex = 2;
-            this.label1.Text = "程序状态:";
-            // 
-            // State
-            // 
-            this.State.AutoSize = true;
-            this.State.Location = new System.Drawing.Point(102, 29);
-            this.State.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
-            this.State.Name = "State";
-            this.State.Size = new System.Drawing.Size(200, 16);
-            this.State.TabIndex = 3;
-            this.State.Text = "请点击相应操作按钮使用。";
-            // 
-            // button2
-            // 
-            this.button2.Location = new System.Drawing.Point(60, 163);
-            this.button2.Margin = new System.Windows.Forms.Padding(4);
-            this.button2.Name = "button2";
-            this.button2.Size = new System.Drawing.Size(196, 75);
-            this.button2.TabIndex = 4;
-            this.button2.Text = "查看/调用/删除服务";
-            this.button2.UseVisualStyleBackColor = true;
-            this.button2.Click += new System.EventHandler(this.button2_Click);
-            // 
-            // Start
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(340, 260);
-            this.Controls.Add(this.button2);
-            this.Controls.Add(this.State);
-            this.Controls.Add(this.label1);
-            this.Controls.Add(this.button1);
-            this.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.Margin = new System.Windows.Forms.Padding(4);
-            this.MaximizeBox = false;
-            this.Name = "Start";
-            this.Text = "面向Web资源的服务封装系统";
-            this.Load += new System.EventHandler(this.Start_Load);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-        private System.Windows.Forms.Button button1;
-        private System.Windows.Forms.Label label1;
-        private System.Windows.Forms.Label State;
-        private System.Windows.Forms.Button button2;
-    }
-}

+ 0 - 255
C#/Start.cs

@@ -1,255 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using OpenQA.Selenium;
-using OpenQA.Selenium.Chrome;
-using OpenQA.Selenium.Interactions;
-using OpenQA.Selenium.Internal;
-using OpenQA.Selenium.Support;
-using Fleck;
-using Newtonsoft.Json;
-using System.Runtime.InteropServices;
-using System.Diagnostics;
-using System.Threading;
-
-namespace ServiceWrapper
-{
-    public partial class Start : Form
-    {
-        public static IWebDriver browser;
-        public static IWebSocketConnection socket_start; //输入网址页面的socket
-        public static IWebSocketConnection socket_window; //正式使用的窗口的socket
-        public static IWebSocketConnection socket_flowchart; //流程图的socket
-        public static WebSocketServer server;
-        public static IntPtr chromeId;
-        public static string[] links;
-        public Flow fr;
-        public string serviceListUrl = "http://183.129.170.180:8041/frontEnd/serviceList.html";
-
-        [System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "MoveWindow")]
-        public static extern bool MoveWindow(System.IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
-
-        [DllImport("user32.dll")]
-        public static extern IntPtr GetForegroundWindow();
-        [System.Runtime.InteropServices.DllImport("user32.dll")]
-        public static extern int SetForegroundWindow(IntPtr hwnd);
-
-        [DllImport("user32", EntryPoint = "GetWindowThreadProcessId")]
-        private static extern int GetWindowThreadProcessId(IntPtr hwnd, out int pid);
-
-        [DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]
-        private static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);
-        [DllImport("user32.dll")]
-        private extern static bool SwapMouseButton(bool fSwap);
-        [DllImport("user32.dll", SetLastError = true)]
-        static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
-
-        [DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]
-        public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
-
-        const int WM_SYSCOMMAND = 0x0112;
-        const int SC_CLOSE = 0xF060;
-        const int SC_MINIMIZE = 0xF020;
-        const int SC_MAXIMIZE = 0xF030;
-        const int SC_RESTORE = 0xF120;
-
-        public Start()
-        {
-            InitializeComponent();
-            PublicVariable.start = this;
-        }
-
-        private void Start_Load(object sender, EventArgs e)
-        {
-            //string title = (string)Scripts().ExecuteScript("return document.title");
-            server = new WebSocketServer("ws://0.0.0.0:8084");
-            server.Start(socke =>
-            {
-                socke.OnOpen = () =>
-                {
-                    BeginInvoke(new ConnectionChange(ModifyState), new object[] { "与浏览器连接已建立,请使用。" });
-                };
-                socke.OnClose = () =>
-                {
-                    //BeginInvoke(new ConnectionChange(ModifyState), new object[] { "与浏览器连接已断开。" });
-                };
-                socke.OnMessage = message =>
-                {
-
-                    Msg msg = JsonConvert.DeserializeObject<Msg>(message);//result为上面的Json数据
-                                                                          //处理连接操作
-                    if (msg.type == 0)//如果是第一次连接操作,设定socket
-                    {
-                        if (msg.message.id == 0)
-                        {
-                            socket_window = socke;
-                            Console.WriteLine("Socket Window Connected.");
-                        }
-                        else if (msg.message.id == 1)
-                        {
-                            socket_start = socke;
-                            Console.WriteLine("Socket Start Connected.");
-                        }
-                        else
-                        {
-                            socket_flowchart = socke;
-                            Console.WriteLine("Socket Flowchart Connected.");
-                            //发送打开网页指令
-                            //FlowMessage fmsg = JsonConvert.DeserializeObject<FlowMessage>("{\"type\":0,\"data\":{\"option\":1,\"parameters\":{\"url\":\"https://www.baidu.com\"}}}");
-                            //fmsg.data.parameters.url = links[0];
-                            //string json = JsonConvert.SerializeObject(fmsg);
-                            //socket_flowchart.Send(json);
-                        }
-                    }
-                    else //其他情况放在进程外处理
-                    {
-                        try
-                        {
-                            BeginInvoke(new GetMessage(HandleEvent), new object[] { message });
-                        }
-                        catch (Exception)
-                        {
-
-                            throw;
-                        }
-                    }
-
-                };
-            });
-            try
-            {
-                SendKeys.Send("+");
-                SendKeys.Send("+"); //测试是否能正常使用输入模块
-            }
-            catch (Exception)
-            {
-                MessageBox.Show("输入模块初始化失败,请退出360之类的安全软件!");
-                Application.Exit();
-            }
-        }
-
-        delegate void ConnectionChange(object input);//委托
-        delegate void GetMessage(object input);
-
-        //正式处理程序入口
-        public void HandleEvent(object input)
-        {
-            
-            Msg msg = JsonConvert.DeserializeObject<Msg>(input.ToString());//result为上面的Json数据
-            if (msg.type == 1) //开始的时候输入网址
-            {
-                chromeId = GetForegroundWindow(); //记录下所在浏览器的进程Id号
-                Console.WriteLine(chromeId);
-                Console.WriteLine();
-                //links = msg.message.links.Split(new string[] { "\n" }, StringSplitOptions.None);
-                //List<string> list = links.ToList();
-                //int l = links.Length;
-                //if (links[l - 1].Length == 0)//如果最后一行是空行则删掉
-                //{
-                //    list.RemoveAt(l - 1);
-                //}
-                //links = list.ToArray();
-                //if (browser != null)
-                //{
-                //    browser.Navigate().GoToUrl(links[0]);
-                //}
-                int width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width;
-                int height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Height;
-                SendMessage(chromeId, WM_SYSCOMMAND, SC_RESTORE, 0); // 最大化
-                MoveWindow(chromeId, 0, Convert.ToInt32(height * PublicVariable.ratio) - 120, width, 120 + Convert.ToInt32(height * (1.0 - PublicVariable.ratio)), true);
-                if(fr!=null)
-                {
-                    if (msg.message.id != -1) //读取服务流程,不是新增的时候
-                    {
-                        fr.chromeBrowser.Load(Flow.flowChartUrl + msg.message.id.ToString());
-                    }
-                    //SwapMouseButton(true);
-                    fr.Show();
-                }
-                Hide();
-                //SwitchToThisWindow(chromeId,true);
-                //ShowWindow(System.UIntPtr(browser.CurrentWindowHandle),2);
-                SetForegroundWindow(Start.chromeId); //打开流程图窗口后将chrome窗口显示到最前方
-                SetForegroundWindow(Handle); //打开流程图窗口后将chrome窗口显示到最前方
-                SetForegroundWindow(Start.chromeId); //打开流程图窗口后将chrome窗口显示到最前方
-                //MouseHelper.SetCursorPos(400, Convert.ToInt32(height * PublicVariable.ratio) - 110);
-                //MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
-                //Thread.Sleep(50);
-                //MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
-            }
-            else if (msg.type == 2)
-            {
-                try
-                {
-                    SendKeys.Send(msg.message.keyboardStr);
-                    SendKeys.Send("+");
-                    SendKeys.Send("+"); //两个shift是为了防止有人按用中文输入法输入了英文按了回车,这样切换两次输入法就可以达到效果
-                }
-                catch (Exception)
-                {
-                    MessageBox.Show("输入失败,请退出360之类的安全软件!");
-                }
-               
-            }
-            else if (msg.type == 3)
-            {
-                if (msg.from == 0)
-                {
-                    socket_flowchart.Send(msg.message.pipe); //直接把消息转接
-                }
-                else
-                {
-                    socket_window.Send(msg.message.pipe);
-                }
-            }
-            else if (msg.type == 5)
-            {
-                string FileName = Application.StartupPath + @"/Chrome/ServiceWrapper_ExcuteStage.exe"; //启动的应用程序名称
-                Process.Start(FileName, msg.message.id.ToString()); //启动执行程序
-            }
-        }
-
-        public void ModifyState(object input)
-        {
-            State.Text = (string)input;
-        }
-
-
-        public static IJavaScriptExecutor Scripts()
-        {
-            return (IJavaScriptExecutor)browser;
-        }
-
-        private void button1_Click(object sender, EventArgs e)
-        {
-            fr = new Flow(); //先创造流程图界面,暂时隐藏不显示
-            fr.Show();
-            fr.Hide();
-            State.Text = "加载中……";
-            ChromeOptions options = new ChromeOptions();
-            options.AddExtension(Application.StartupPath + @"/ServiceWrapper.crx");
-            browser = new ChromeDriver(Application.StartupPath +@"/Chrome", options);
-            browser.Navigate().GoToUrl(serviceListUrl); //默认可以修改服务
-            //ProcessStartInfo startInfo = new ProcessStartInfo();
-            //startInfo.FileName = Application.StartupPath + @"/Chrome/chrome.exe"; //启动的应用程序名称
-            //SwapMouseButton(false);//此时此刻的鼠标应该是默认状态
-            //PublicVariable.chrome =  Process.Start(startInfo);
-            //browser.Navigate().GoToUrl("file:///Start.html");
-        }
-
-        private void button2_Click(object sender, EventArgs e)
-        {
-            Flow fr2 = new Flow(serviceListUrl+"?type=1"); //加载的页面不可增加和修改服务
-            fr2.closedriver = false;
-            fr2.WindowState = FormWindowState.Maximized; //最大化窗口
-            fr2.Show();
-            Hide();
-        }
-    }
-}

+ 0 - 189
C#/WindowsFormsApp4.csproj

@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props" Condition="Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props')" />
-  <Import Project="..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props')" />
-  <Import Project="..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props" Condition="Exists('..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props')" />
-  <Import Project="..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props" Condition="Exists('..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props')" />
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{8FF781CB-5C33-4C3F-872D-1FE0E114A8D0}</ProjectGuid>
-    <OutputType>WinExe</OutputType>
-    <RootNamespace>ServiceWrapper</RootNamespace>
-    <AssemblyName>ServiceWrapper</AssemblyName>
-    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
-    <Deterministic>true</Deterministic>
-    <NuGetPackageImportStamp>
-    </NuGetPackageImportStamp>
-    <PublishUrl>publish\</PublishUrl>
-    <Install>true</Install>
-    <InstallFrom>Disk</InstallFrom>
-    <UpdateEnabled>false</UpdateEnabled>
-    <UpdateMode>Foreground</UpdateMode>
-    <UpdateInterval>7</UpdateInterval>
-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
-    <UpdatePeriodically>false</UpdatePeriodically>
-    <UpdateRequired>false</UpdateRequired>
-    <MapFileExtensions>true</MapFileExtensions>
-    <ApplicationRevision>0</ApplicationRevision>
-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
-    <IsWebBootstrapper>false</IsWebBootstrapper>
-    <UseApplicationTrust>false</UseApplicationTrust>
-    <BootstrapperEnabled>true</BootstrapperEnabled>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ServiceWrapper|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ServiceWrapper|x64' ">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\x64\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <LangVersion>7.3</LangVersion>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-    <Prefer32Bit>true</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
-    <OutputPath>bin\x64\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <Optimize>true</Optimize>
-    <DebugType>pdbonly</DebugType>
-    <PlatformTarget>x64</PlatformTarget>
-    <LangVersion>7.3</LangVersion>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
-    <Prefer32Bit>true</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup>
-    <ApplicationIcon>favicon.ico</ApplicationIcon>
-  </PropertyGroup>
-  <PropertyGroup>
-    <TargetZone>LocalIntranet</TargetZone>
-  </PropertyGroup>
-  <PropertyGroup>
-    <GenerateManifests>false</GenerateManifests>
-  </PropertyGroup>
-  <PropertyGroup>
-    <ApplicationManifest>Properties\app.manifest</ApplicationManifest>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Fleck, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\Fleck.1.1.0\lib\net45\Fleck.dll</HintPath>
-    </Reference>
-    <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Deployment" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xml" />
-    <Reference Include="WebDriver, Version=3.141.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\Selenium.WebDriver.3.141.0\lib\net45\WebDriver.dll</HintPath>
-    </Reference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Class1.cs" />
-    <Compile Include="Flow.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Flow.Designer.cs">
-      <DependentUpon>Flow.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Program.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="PublicVariable.cs" />
-    <Compile Include="Start.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Start.Designer.cs">
-      <DependentUpon>Start.cs</DependentUpon>
-    </Compile>
-    <EmbeddedResource Include="Flow.resx">
-      <DependentUpon>Flow.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DependentUpon>Resources.resx</DependentUpon>
-      <DesignTime>True</DesignTime>
-    </Compile>
-    <EmbeddedResource Include="Start.resx">
-      <DependentUpon>Start.cs</DependentUpon>
-    </EmbeddedResource>
-    <None Include="packages.config" />
-    <None Include="Properties\app.manifest" />
-    <None Include="Properties\Settings.settings">
-      <Generator>SettingsSingleFileGenerator</Generator>
-      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
-    </None>
-    <Compile Include="Properties\Settings.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DependentUpon>Settings.settings</DependentUpon>
-      <DesignTimeSharedInput>True</DesignTimeSharedInput>
-    </Compile>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="App.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="favicon.ico" />
-  </ItemGroup>
-  <ItemGroup>
-    <BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
-      <Visible>False</Visible>
-      <ProductName>Microsoft .NET Framework 4.7.2 %28x86 和 x64%29</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1</ProductName>
-      <Install>false</Install>
-    </BootstrapperPackage>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
-    <PropertyGroup>
-      <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
-    </PropertyGroup>
-    <Error Condition="!Exists('..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x64.79.1.35\build\cef.redist.x64.props'))" />
-    <Error Condition="!Exists('..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cef.redist.x86.79.1.35\build\cef.redist.x86.props'))" />
-    <Error Condition="!Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.props'))" />
-    <Error Condition="!Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets'))" />
-    <Error Condition="!Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.props'))" />
-    <Error Condition="!Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets'))" />
-  </Target>
-  <Import Project="..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.79.1.350\build\CefSharp.Common.targets')" />
-  <Import Project="..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets" Condition="Exists('..\packages\CefSharp.WinForms.79.1.350\build\CefSharp.WinForms.targets')" />
-</Project>

+ 0 - 13
C#/WindowsFormsApp4.csproj.user

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <PublishUrlHistory>publish\</PublishUrlHistory>
-    <InstallUrlHistory />
-    <SupportUrlHistory />
-    <UpdateUrlHistory />
-    <BootstrapperUrlHistory />
-    <ErrorReportUrlHistory />
-    <FallbackCulture>zh-CN</FallbackCulture>
-    <VerifyUploadedFiles>false</VerifyUploadedFiles>
-  </PropertyGroup>
-</Project>

BIN=BIN
C#/shortcut/.vs/shortcut/FileContentIndex/23f98718-32b2-4c38-b5b9-aa3fd9241e3a.vsidx


BIN=BIN
C#/shortcut/.vs/shortcut/FileContentIndex/392fedf3-4ef0-474a-95e3-6021f9c8513e.vsidx


BIN=BIN
C#/shortcut/.vs/shortcut/FileContentIndex/7456acef-50d7-43b8-aef3-f3c1a9799585.vsidx


+ 0 - 0
Extension/ServiceWrapper/styles/devtools.css → C#/shortcut/.vs/shortcut/FileContentIndex/read.lock


BIN=BIN
C#/shortcut/.vs/shortcut/v17/.suo


+ 25 - 0
C#/shortcut/shortcut.sln

@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32929.385
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "shortcut", "shortcut\shortcut.csproj", "{F7286090-1B9A-456C-A0C6-DB86E17C3C47}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F7286090-1B9A-456C-A0C6-DB86E17C3C47}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {36A0EC28-3049-411D-AB6F-B20A562EE31D}
+	EndGlobalSection
+EndGlobal

+ 0 - 0
ServiceWrapperEntry/ServiceWrapperEntry/App.config → C#/shortcut/shortcut/App.config


+ 48 - 0
C#/shortcut/shortcut/Form1.Designer.cs

@@ -0,0 +1,48 @@
+namespace shortcut
+{
+    partial class Form1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // Form1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(800, 450);
+            this.Name = "Form1";
+            this.Text = "Form1";
+            this.Load += new System.EventHandler(this.Form1_Load);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+    }
+}
+

+ 26 - 0
C#/shortcut/shortcut/Form1.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace shortcut
+{
+    public partial class Form1 : Form
+    {
+        public Form1()
+        {
+            InitializeComponent();
+        }
+
+        private void Form1_Load(object sender, EventArgs e)
+        {
+            this.Hide();
+            Application.Exit();
+        }
+    }
+}

+ 120 - 0
C#/shortcut/shortcut/Form1.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 28 - 0
C#/shortcut/shortcut/Program.cs

@@ -0,0 +1,28 @@
+using System.Diagnostics;
+using System.IO;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace shortcut
+{
+    internal static class Program
+    {
+        /// <summary>
+        /// The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            if (new DirectoryInfo(Application.StartupPath + "\\EasySpider\\").Exists)
+                Process.Start(Application.StartupPath + "\\EasySpider\\EasySpider.exe");
+            else
+                Process.Start(Application.StartupPath + "\\Debug\\EasySpider.exe");
+        }
+    }
+}

+ 36 - 0
C#/shortcut/shortcut/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("shortcut")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("shortcut")]
+[assembly: AssemblyCopyright("Copyright ©  2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components.  If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("f7286090-1b9a-456c-a0c6-db86e17c3c47")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 39 - 31
ServiceWrapperEntry/ServiceWrapperEntry/Properties/Resources.Designer.cs → C#/shortcut/shortcut/Properties/Resources.Designer.cs

@@ -1,61 +1,69 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // <auto-generated>
 // <auto-generated>
-//     此代码由工具生成。
-//     运行时版本:4.0.30319.42000
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
 //
-//     对此文件的更改可能会导致不正确的行为,并且如果
-//     重新生成代码,这些更改将会丢失。
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
 // </auto-generated>
 // </auto-generated>
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 
 
-namespace ServiceWrapper.Properties {
-    using System;
-    
-    
+namespace shortcut.Properties
+{
+
+
     /// <summary>
     /// <summary>
-    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
     /// </summary>
     /// </summary>
-    // 此类是由 StronglyTypedResourceBuilder
-    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
-    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
-    // (以 /str 作为命令选项),或重新生成 VS 项目。
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    internal class Resources {
-        
+    internal class Resources
+    {
+
         private static global::System.Resources.ResourceManager resourceMan;
         private static global::System.Resources.ResourceManager resourceMan;
-        
+
         private static global::System.Globalization.CultureInfo resourceCulture;
         private static global::System.Globalization.CultureInfo resourceCulture;
-        
+
         [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
         [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal Resources() {
+        internal Resources()
+        {
         }
         }
-        
+
         /// <summary>
         /// <summary>
-        ///   返回此类使用的缓存的 ResourceManager 实例。
+        ///   Returns the cached ResourceManager instance used by this class.
         /// </summary>
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
-            get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ServiceWrapper.Properties.Resources", typeof(Resources).Assembly);
+        internal static global::System.Resources.ResourceManager ResourceManager
+        {
+            get
+            {
+                if ((resourceMan == null))
+                {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("shortcut.Properties.Resources", typeof(Resources).Assembly);
                     resourceMan = temp;
                     resourceMan = temp;
                 }
                 }
                 return resourceMan;
                 return resourceMan;
             }
             }
         }
         }
-        
+
         /// <summary>
         /// <summary>
-        ///   重写当前线程的 CurrentUICulture 属性
-        ///   重写当前线程的 CurrentUICulture 属性。
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
         /// </summary>
         /// </summary>
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
-            get {
+        internal static global::System.Globalization.CultureInfo Culture
+        {
+            get
+            {
                 return resourceCulture;
                 return resourceCulture;
             }
             }
-            set {
+            set
+            {
                 resourceCulture = value;
                 resourceCulture = value;
             }
             }
         }
         }

+ 0 - 0
ServiceWrapperEntry/ServiceWrapperEntry/Properties/Resources.resx → C#/shortcut/shortcut/Properties/Resources.resx


+ 17 - 13
C#/Properties/Settings.Designer.cs → C#/shortcut/shortcut/Properties/Settings.Designer.cs

@@ -1,24 +1,28 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // <auto-generated>
 // <auto-generated>
-//     此代码由工具生成。
-//     运行时版本:4.0.30319.42000
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
 //
 //
-//     对此文件的更改可能会导致不正确的行为,并且如果
-//     重新生成代码,这些更改将会丢失。
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
 // </auto-generated>
 // </auto-generated>
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 
 
-namespace ServiceWrapper.Properties {
-    
-    
+namespace shortcut.Properties
+{
+
+
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0")]
-    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-        
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-        
-        public static Settings Default {
-            get {
+
+        public static Settings Default
+        {
+            get
+            {
                 return defaultInstance;
                 return defaultInstance;
             }
             }
         }
         }

+ 0 - 0
ServiceWrapperEntry/ServiceWrapperEntry/Properties/Settings.settings → C#/shortcut/shortcut/Properties/Settings.settings


+ 6 - 0
C#/shortcut/shortcut/bin/Debug/shortcut.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
+    </startup>
+</configuration>

BIN=BIN
C#/shortcut/shortcut/bin/Debug/shortcut.pdb


+ 6 - 0
C#/shortcut/shortcut/bin/Release/EasySpider_ShortCut.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
+    </startup>
+</configuration>

BIN=BIN
C#/shortcut/shortcut/bin/Release/EasySpider_ShortCut.pdb


+ 0 - 0
ServiceWrapperEntry/ServiceWrapperEntry/favicon.ico → C#/shortcut/shortcut/favicon.ico


+ 4 - 0
C#/shortcut/shortcut/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs

@@ -0,0 +1,4 @@
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

BIN=BIN
C#/shortcut/shortcut/obj/Debug/DesignTimeResolveAssemblyReferences.cache


BIN=BIN
C#/shortcut/shortcut/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


BIN=BIN
C#/shortcut/shortcut/obj/Debug/shortcut.Form1.resources


BIN=BIN
C#/shortcut/shortcut/obj/Debug/shortcut.Properties.Resources.resources


BIN=BIN
C#/shortcut/shortcut/obj/Debug/shortcut.csproj.AssemblyReference.cache


+ 1 - 0
C#/shortcut/shortcut/obj/Debug/shortcut.csproj.CoreCompileInputs.cache

@@ -0,0 +1 @@
+8069502011d0681850e57a53d5a1673222f430a6

+ 11 - 0
C#/shortcut/shortcut/obj/Debug/shortcut.csproj.FileListAbsolute.txt

@@ -0,0 +1,11 @@
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.AssemblyReference.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.SuggestedBindingRedirects.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.Form1.resources
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.Properties.Resources.resources
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.GenerateResource.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.csproj.CoreCompileInputs.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\bin\Debug\shortcut.exe.config
+C:\Users\q9823\source\repos\shortcut\shortcut\bin\Debug\shortcut.exe
+C:\Users\q9823\source\repos\shortcut\shortcut\bin\Debug\shortcut.pdb
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.exe
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Debug\shortcut.pdb

BIN=BIN
C#/shortcut/shortcut/obj/Debug/shortcut.csproj.GenerateResource.cache


+ 0 - 0
Extension/ServiceWrapper/styles/options.css → C#/shortcut/shortcut/obj/Debug/shortcut.csproj.SuggestedBindingRedirects.cache


BIN=BIN
C#/shortcut/shortcut/obj/Debug/shortcut.pdb


+ 4 - 0
C#/shortcut/shortcut/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs

@@ -0,0 +1,4 @@
+// <autogenerated />
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

BIN=BIN
C#/shortcut/shortcut/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache


BIN=BIN
C#/shortcut/shortcut/obj/Release/EasySpider_ShortCut.pdb


BIN=BIN
C#/shortcut/shortcut/obj/Release/shortcut.Form1.resources


BIN=BIN
C#/shortcut/shortcut/obj/Release/shortcut.Properties.Resources.resources


BIN=BIN
C#/shortcut/shortcut/obj/Release/shortcut.csproj.AssemblyReference.cache


+ 1 - 0
C#/shortcut/shortcut/obj/Release/shortcut.csproj.CoreCompileInputs.cache

@@ -0,0 +1 @@
+a05b2efad1c492f69cfd9e73a7de2300da2b5b0d

+ 11 - 0
C#/shortcut/shortcut/obj/Release/shortcut.csproj.FileListAbsolute.txt

@@ -0,0 +1,11 @@
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.AssemblyReference.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.SuggestedBindingRedirects.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.Form1.resources
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.Properties.Resources.resources
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.GenerateResource.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\shortcut.csproj.CoreCompileInputs.cache
+C:\Users\q9823\source\repos\shortcut\shortcut\bin\Release\EasySpider_ShortCut.exe.config
+C:\Users\q9823\source\repos\shortcut\shortcut\bin\Release\EasySpider_ShortCut.exe
+C:\Users\q9823\source\repos\shortcut\shortcut\bin\Release\EasySpider_ShortCut.pdb
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\EasySpider_ShortCut.exe
+C:\Users\q9823\source\repos\shortcut\shortcut\obj\Release\EasySpider_ShortCut.pdb

BIN=BIN
C#/shortcut/shortcut/obj/Release/shortcut.csproj.GenerateResource.cache


+ 0 - 0
Extension/ServiceWrapper/styles/popup.css → C#/shortcut/shortcut/obj/Release/shortcut.csproj.SuggestedBindingRedirects.cache


+ 89 - 0
C#/shortcut/shortcut/shortcut.csproj

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{F7286090-1B9A-456C-A0C6-DB86E17C3C47}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>shortcut</RootNamespace>
+    <AssemblyName>EasySpider_ShortCut</AssemblyName>
+    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationIcon>favicon.ico</ApplicationIcon>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Form1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form1.Designer.cs">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <EmbeddedResource Include="Form1.resx">
+      <DependentUpon>Form1.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="favicon.ico" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>

+ 0 - 0
ExecuteStage/all_data.xls → Examples/Sample Tasks/all_data.xls


+ 0 - 0
ExecuteStage/author_crawl.py → Examples/Sample Tasks/author_crawl.py


+ 1882 - 0
Examples/Sample Tasks/author_list.csv

@@ -0,0 +1,1882 @@
+卖家网
+虚竹居士
+美篇
+甩手网
+搜狐网
+xw.qq.com
+海昇智
+鑫老板的vlog
+潮司电商
+多多大学堂
+澄澄的电商运...
+沐禹说电商
+太平洋电脑网
+欧阳锋电商践谈
+blog.csdn.net
+哔哩哔哩
+聚品品牌电商
+开淘网
+www.sohu.com
+我在人间凑数的日子呀
+弘辽科技
+鑫老板的vl...
+童星电商人
+西瓜视频
+初妆007
+面兜兜上货助手
+沙漠中海洋01
+西瓜学院
+鑫老板爱分享
+网狼嗨夜猫
+南山电商说
+发财树0E5V
+xiangmuhezuo.huangye88.com
+翰icon
+秒懂新媒体
+抖贝勒8
+万漉电商
+斑马易境ERP
+电商阿亮
+汽动
+中证网
+平安财经网
+亚子老师
+沙哥趣事
+经济观察报
+莫一见的小屋
+56E
+虎嗅APP
+海纳百创
+hishop海商
+薇淇笔记
+大河看见
+有赞
+运营公举小磊磊
+祖飞有启发
+孙洪鹤
+尚食百味
+贾大师说电商干货
+新京报
+多才玲玲观世界
+深度链陈
+ENET硅谷动力
+www.ostmcn.com
+JIAU
+星辰分享666
+天核能自媒体
+一丝不苟博学...
+智行达一电商
+赢效电商
+邯郸之窗
+简书
+大麦电商说
+www.fob580.com
+冷眼电商
+德朋广告推广公司
+琉璃的梦幻
+北京日报客户端
+贾真108将
+佛系运营阿伟
+老王教电商
+知之讲运营
+小乐学堂
+欧哥欧哥123
+XShoppy
+huke88.com
+JD自营慧采邀约入驻
+无名渔夫
+自媒体学习笔记
+www.5118.com
+步步升文化传媒
+ggg8405
+百米走天涯
+青竹叶1980
+www.yubaibai.com.cn
+营销的那点事
+电商老蟹
+中华网科技
+小潭电商创业日记
+电商马夫
+艾优财经
+荔枝新闻
+辉仔说娱乐
+飞瓜智投
+biz.ifeng.com
+Nint 任拓
+欢哥自媒体9...
+爆笑新君
+跨境笔记
+www.qdyy99.com
+央广网
+www.wenanka.com
+心晴坊间
+清清42562
+同花顺财经
+司空电商会
+亿邦动力网
+四月电商
+胡杨老师
+淘沙电商EC
+电商魂电商人
+为什么呀小铭
+小欣电商笔记
+悟空问答
+头豹
+用户397359384610
+专注企业电商
+电商在线
+勇者璇玑
+一个迷人的混蛋oc
+商业课程每天...
+套路研究中心
+京淘电商吴金鑫
+老李是个80后
+赵冰峰财经
+电商行路人
+将军百战死
+天下网商
+电商老Y
+昱恩网店代运营
+aweihaha
+亚马逊老马
+天猫入驻讲解
+乐乎网络
+山治说电商
+NTT的电商...
+谢小姐讲运营
+江略
+疯狂的美工
+晚晚不熬夜y
+证券时报e公司
+运营阿七
+SHOPLINE
+光宇说
+灰色眼眸97
+新手运营小二
+阳光1269...
+虾聊电商
+霄风电商
+m.wubaiyi.com
+少年谈电商
+LOL联盟手游
+中国网
+赢效电商轻音
+晴风读书
+www.fshuiren.com
+tao.1688.com
+星菊厨房
+电商运营专员瓜皮
+www.carejt.com
+北青网
+星哥说跨境
+blog.uvgzs.com
+废废电商笔记
+杨洪开店有术
+欢子情绪沟通
+新乳业newdairy
+小熊电商运营
+向前行的唐多
+深谈电商入驻
+杨永春老师
+Tech星球
+笑看电商风云
+亦飞笔记
+界面新闻
+青瓜传媒
+瓢泼而下的冰水
+天下信息网
+青年文俊PRO
+阿尔的太阳BFH
+拓海的油门
+www.wanshifu.com
+www.visacd.com
+www.281050.com
+风趣的博学多才可可
+www.shuziyingxiao.net
+www.gsseo.net
+www.bbsdouyin.com
+www.r435.com
+狐度工作室
+光明网
+www.chanpin100.com
+www.lutu88.com
+某人讲币圈
+青岛海纳电商
+K2电商教育玄威
+嗑科粗线条
+网店运营那点事儿
+做电商
+www.cehuan.com
+电商经济
+乡村振兴与规划设计
+小菲聊电商
+CX老兵IVAN
+万企云
+www.tangshanwei.com
+电商策
+网创军哥
+久闻网
+电商运营大王真
+牛哥说家电
+zhidao.baiwang.com
+儒生电商
+www.qaarr.com
+广州电商知识分享
+全球时尚集
+李院长天天教...
+www.fengkuangsem.com
+张大丢丢丢丢丢
+灵荟神池
+新桌
+单仁企业短视频直播
+m.chinaeedu.com
+纯粹幽默社
+电商蒋晖
+蜂鸟AMZ
+啵啵蜜
+bbs.hupu.com
+办公黑科技
+life.jrj.com.cn
+晓晓多多运营
+武汉燕子说电商
+多肉学长
+众鑫玩卡
+木子电商
+www.1330.cn
+中国企业家杂志
+包图网
+运营阿潇
+企智慧策划
+YinoLink易诺
+浪海滔滔淘
+m.ys137.com
+夜老板电商
+神策数据
+电商王子明
+躺倒鸭
+www.hulian86.com
+昆明平头哥商学院
+红网
+我是带货王栏目
+中婴商情
+彭亚舟工作室
+北庭灬
+运营增长
+北京广告协会
+down.lusongsong.com
+电商海棠
+陕视新闻
+胖子说跨境
+语雀
+状元讲电商
+T媒体
+珠海网警巡查执法
+嘉旺老丫手势舞
+蚂蚁说个球
+赤云电商
+陈帅YL
+天天自媒体
+老吴运营日记S2
+zhiku.shifanwangluo.com
+刘俊锋
+运营七七go...
+www.kuaidzj.com
+创业小阳89
+moment.rednet.cn
+AMZ人
+黑猫电商团队
+万物未央
+金融界财经频道
+朴实芒果y
+进击的彪哥11
+电商运营820
+智兔
+xiaoao逍遥
+电商创业白尼
+电商大司马
+m.yxlady.com
+www.yljy123.cn
+m.china.com.cn
+仔祺
+头条公开课新...
+电商需要功夫
+乐言科技
+齐论教育言宇
+上海非凡教育培训
+跟红鱼学速卖通
+广州美迪教育
+师天浩
+www.dachanggongguan.com
+赚钱那点儿事
+电商甜甜
+www.seoxin.cn
+易撰
+中金在线财经
+商梦网校
+jnec.jnbusiness.jinan.gov.cn
+淘商故事会
+鸭子运营分析
+认真的铅笔VV
+自媒体创业说
+阅读
+电商干货9
+蚂蚁玩电商
+三三爱学习呀
+西安晚报
+taodocs.com
+中国日报网
+清姜啦
+表格企鹅2952081383
+揭阳新闻网
+www.027515.com
+金洲鹏电商教育服务
+动脑启明教育运营
+知安徽
+铅笔道
+飞航传媒
+m.yousouedu.com
+电商运营公子
+www.yyq0.com
+小猪聊电商
+海沙12138
+天猫入驻小助...
+www.doc88.com
+阿甘说市
+弥V了个佛
+www.kwzdl.com
+m.shuziyingxiao.net
+运河国际跨境电商园
+上石艺术
+米奇妈妈vlog
+新营销思想库
+羊羊电商日记
+小贤自媒体运营
+了凡618
+m.musicheng.com
+老六电商
+淘宝新手开店...
+短视频学苑
+大华观察
+投资界
+美食包青天
+xueyuan.yixiaoer.cn
+Amylin
+熊猫出海
+www.dinghaiec.com
+晶晶记录生活
+荆楚网
+38952153923
+罗维说电商
+利哥自媒体创业
+亦辰笔记
+日日多
+电商淘讲堂
+陌上繁花聊电商
+m.app.cctv.com
+mip.suqitech.com
+百姓网
+多多情报通分析
+春哥解惑
+桃宝1
+www.suchunyu.com
+卓跃电商学堂
+www.wzy2.com
+真刷淘宝卖家论坛
+www.zhizhouteach.cn
+思考七七
+1688运营研究社
+电商壹号
+电商大白
+羊羊Aa
+财经涂鸦
+掌柜查查
+快链信息科技
+www.tbxue8.com
+www.miaoshou.cc
+江西都市频道
+万师傅
+常州电商
+AE学习助手
+小西瓜的视频创作班
+金融与创业
+m.yndtjj.com
+老曹观跨境
+佰赞电商
+屿梦爱写作
+多啦A梦口号
+www.dsbd7.com
+m.youth.cn
+德林社
+阿优优
+出海第一站
+www.1586f.com
+晏涛三寿
+cnmeiqi.com
+福建小佬
+A丝路赞学院
+view.inews.qq.com
+福州新闻网
+烟台鼎海电商
+万堂雨后晴天
+初恋儿
+课工场
+创业站长
+舞泡网店转让平台
+淘宝教育
+海外网
+程序园说创业
+用户2422948939447207
+小白财经说
+连姐管理官
+知课电商岚风
+拯救乏味计划-
+钛媒体APP
+明说电商
+宜良铠旗食品...
+www.yxcehua.com
+360个人图书馆
+新浪看点
+黄彡岁
+利器大师频道
+网络资源分享88
+www.abckz.com
+www.jsxyy.com.cn
+李天鹤
+3g.163.com
+电商运营人导师
+平安金山
+墨染终无意
+i黑马
+成都电商周彦充
+柯涵分享电商创业
+肆拾玖先生
+电商初心
+晶鑫网络推广
+圣多教育
+运营那些坑
+同泰5G网红直播基地
+m.wuliaoting.com
+跨境奇葩说
+人间小土豆x
+胖哥有故事
+远欧学跨境
+斌哥说服装生意经
+运筹设计电子商务
+21世纪经济报道
+梦老板讲多多
+m.kjqiao.com
+电商宝宝俱乐...
+双木独立运营顾问
+朱古力素材库
+大斌电商二次创业啊
+知舟电商
+快出海
+Analysys易观分析
+淘领域
+u.ebrun.com
+5sxm.com
+www.zt5.com
+学习啦
+互联网营销师那些事儿
+电商小程兮
+花希哲
+金鱼学姐讲运营
+北京京拍档
+财经王大拿
+电商如风
+石家庄曹状元食品
+电商运营秋木...
+ZG服装圈
+青创淘衣客
+有辰家的青柠
+油管歪果仁
+复盘人
+不太聪明的阿涛
+真知灼见云课...
+www.amaiziyuan.net
+猫儿传媒
+tbk0606
+夏木电商说
+淘宝运营店长
+远丰软件
+郭老板来了
+橙果岭官方
+www.cdrsksw.com
+湖畔生活
+搏嵘一笑
+普洱IT
+我美食英雄
+女大学生快乐剪辑
+新浪网
+上峰说
+tz1288.com
+驭汛
+我的推广生涯
+www.changchenghao.cn
+用户131588985495735
+安化黑茶频道
+熊猫830
+齐鲁壹点海岱新闻
+快科技
+跨境眼观察
+小圆象PDF转换器
+www.ziyuxz.cn
+www.vvlego.com
+古今江南..
+A电商分享
+m.yjbys.com
+爱赚钱的旭哥
+优雅栋哥
+齐明刀
+叫我xh电商干货
+脚本之家
+申斯基
+电商财税干货...
+www.ximalaya.com
+河北广播电视...
+唐歌日思录
+博君一战Jl
+宠业家
+www.jieyao.com
+尘牛CN
+东饮
+www.xingkes.com
+全域影视传媒
+电商十五年
+沈阳广播电视台
+豆叮叮叮
+网商园杭州
+武侠小王子
+品玩
+木木月月的生活
+珀美talks
+小卓运营官
+NIUKE跨境
+小亨电商
+易驻猫
+凯哥自媒体
+崔加油
+seoxiehui.cn
+锋趣
+广东靓仔条挺
+yf小宇笔记
+小哈自媒体
+彼亿营销
+www.sy8786.com
+GBA英国海...
+皮匠网
+火蝠电商
+努力的图图
+太阳sunny1999
+51test.net
+全网集结号
+跨境电商说
+直播眼资讯
+腕哥电商
+www.360docs.net
+取法研习社
+天贵爱分享
+天外飞仙明哥
+成都市人民检察院
+发现网络天猫入驻
+www.zqcn.com.cn
+李院长天天教全媒体运营
+鸣格电商
+隔壁沈老师too
+安北聊电商
+www.musicheng.com
+蚁小二自媒体
+西安网
+36kr.com
+www.zmtzxw.com
+刘信成个人品...
+鬼脚七
+得有店
+小勇哥爱分享
+www.177955.com
+豆瓣
+唐大业
+辉夜运营
+极度网
+星光醉相思
+www.huodongju.com
+他就是冯小栋
+dyjlkr9xpcun
+环闻网
+一只兴奋的小猪
+www.lenvoo.cc
+战旗说电商
+创业家
+抖店运营笔记
+京报网
+电商侦探
+www.58edu.cc
+爱问
+自媒体工具狂
+斌哥说电商
+ycwriters.com
+天极网
+张俊平助农
+口袋电商课王子明
+www.jianghuhao.com
+699pic.com
+www.yunliebian.com
+电商知小二
+数码1线
+默然电商实验室
+刘歌说创业
+星图小7
+电商沈岸
+美洽meiqia
+愈神堂商业运营策略
+海峡都市报
+www.netcyw.cn
+小辣椒说自媒体
+老陕人做电商
+小鹏直播运营
+天猫广州服务中心
+www.seosjz.com
+百分网
+3DM手游
+小铁行业观察家
+千手掌柜
+周粥铺
+www.downzz.com
+wayyp
+数英网digitaling
+百万ip先生
+胡华成
+每天的电商运营日记
+wap.pig66.com
+www.fakeoakleyss.com
+江南知识猫
+电商看这里
+运营大佬
+广漂林子
+穷人走四方
+IT桔子
+芸趣a
+web3dp.com
+彬州市人民政府
+老刘聊跨境
+飓风158
+上元教育张老师123
+一条资深的电商鱼
+mobile.adquan.com
+scjd.anshun.gov.cn
+其乐融融海伦...
+电商学习社
+www.knowlesys.cn
+姚嘉儿
+www.qingyeyu.com
+云达电商
+直通车交流
+奇葩知识点319
+大疯吹动
+吃不Pang的三金
+目计行网络
+电商叨叨叨
+怀中日月
+天音报喜
+欢拓云直播
+诺姐说社群创业
+qiye.eastday.com
+我们一起捉水母
+www.237it.com
+邦阅
+电商狄仁杰3
+小青年电商创...
+www.sh-shishangshi.com
+www.163.com
+工厂尾货大兵...
+氧趣网
+廖丹聊短视频创业
+原创力文档
+小怪兽嗷呜UesugiErii
+侠说智库
+www.shangxue.com
+飞瓜数据
+红门片场
+李卫华频道
+金贝街
+又骗二两酒
+www.huitaoshang.cn
+sai913
+淘发客
+天溢mcn
+www.xinran77.com
+西安新美誉
+爱店家电商服务
+仁德晟电商黑马
+惠州畅城捷途陈辉权
+非石电商芳华
+新闻深呼吸
+老夏分析师
+运营冬瓜
+增长研究社
+言学长电商
+大韩的平淡生活
+大池Rachel
+店查查
+刘丙润的书屋
+宝琏天猫运营
+www.cooboys.com
+吉哥聊电商
+努力成为幻想中的自己
+电商运营干货技巧
+半岛网
+研究基因的博士
+一个人的跨境
+震宇Z御佳直...
+刺客边风
+new.qq.com
+www.dklx.com
+华声在线
+学艺|知舟电子商务
+www.pplcom.com
+中新经纬
+电商易壬
+河南大象网
+1234众晓
+www.xinyinggs.com
+xz.58.com
+电商之家APP
+军探索
+科技园广告部
+东方财富网-股吧
+顺企网
+职场卷神
+m.jingyanben.com
+大王真
+陕西省西咸新区开发建设管理委员会
+猎多多
+艾媒网
+小顽童爸
+花吃姐姐
+说实话的企鹅
+thepaper.cn
+现代快报网
+亚空云教练
+社交电商张蓉
+苏羽微创业百宝箱
+max.book118.com
+手游网
+源本生鲜
+深圳麦家汇跨境电商
+鱼摆摆网
+虎哥很务实
+飞鹰电商运营
+bigfa.com
+www.1lu888.com
+创业的铁匠
+环球网
+sanzhiyang.com
+广东好创业创业服务
+赛拼电商运营
+Foodaily每日食品
+www.zhekoulieshou.com
+qianyoudaya
+上观新闻
+电商博士说
+m.11467.com
+电商逆行者阿龙
+中关村在线
+童话里的阿尔法
+雷科技
+毅菲说线上营销
+帮考网
+Ysh越山海
+www.goobye.net
+www.dsxxt.com
+中国经济网
+电商寻思路
+数艺设
+陶醉电商
+爱做地推的小孟
+墨涵聊电商
+卡哥运营生活记
+坤龙老师
+网易订阅
+群星秀
+路由器
+lxds111
+开封新闻资讯
+流星自媒体
+默然电商实验...
+m.lieju.com
+霞霞女汉纸
+多多小百科
+星眠网络科技
+电商经
+闪电新闻
+350嘉宴大叔
+目众品科技
+助标网络
+易亚电商代运营
+云南今耕农业
+咔咔vlog日记
+电商前沿君
+乘风破浪的高...
+连锁直通车E2CN
+news.558idc.com
+汉云电商
+Dora聊外贸
+匿名电商人
+wp.18183.com
+www.520changshi.com
+和蔼的温华
+南油买手封封
+阿咚的商业分...
+硕智库
+星星跨境
+直播运营赵老师
+莫设限九哥
+慕创直通车
+多多说电商
+北翱1086607983
+m.xeeger.com
+爱斯基摩眼
+极品纯音乐
+朵朵运营
+k.sina.com.cn
+刘哥自媒体1
+www.vyoubang.com
+凡不凡-三不
+Ueeshop自建站
+www.docufty.com
+mm.edrawsoft.cn
+看呐电商专业那点事
+重庆购物狂
+老板说的对
+e点客移动新媒体互动
+大家都在问
+昼澜
+肖十一娘清远鸡店铺
+奇骏咨询1688培训空白
+爱奇艺
+瑞文网
+花和尚
+木木老贼
+www.qqtn.com
+金融界
+中企网电商
+每日最热精选
+lusongsong.com
+追风配角
+jinan.huangye88.com
+腾讯网
+安徽六安裕安检察
+电商369-
+天津傲凯电商运营
+零售与电商观察
+思迅天店
+商业观察家
+news.cnhnb.com
+商业新知
+来治猩猩的你null
+鲸参谋电商大数据
+36氪短视频
+累到崩溃无奈才说累
+cbgc.scol.com.cn
+逍遥tx006
+兵马俑在线
+幕思城火星
+ishare.ifeng.com
+AI财经社
+观察者网
+南阳淘邦电商
+CRMEB
+羊城派
+m.hupu.com
+用户3333349151349517
+杭州网
+老侯说运营
+me.1688.com
+www.bilibili.com
+财鲸岛
+www.niaogebiji.com
+舜网
+CBNData消费站
+守领财经
+阿昆er
+www.yinxi.net
+环球时报
+峰兄来了
+www.xeeger.com
+搞笑奇葩坊
+互联网深一度
+礼品网10000
+聚亿美
+www.zcr.cn
+三言财经
+网易直播
+都市快报
+海棠看跨境
+星淘惠跨境电商
+优梯跨境电商
+JungleScout桨歌科技
+咸鱼000
+立志读书
+君君电商
+中华网财经
+阿里云课堂
+阿鹏生活VLog
+领仕电商视觉
+人生定义法
+电商狂人日记
+电商无缺
+证券之星
+增长黑客
+www.gongshengyun.cn
+老泡
+创造快乐的大脑
+袁先生你好
+红餐网
+设计之家
+马团团的成长记
+做电商的阿怪
+身处混沌的二哥
+极客盖尔5d6
+baike.1688.com
+妞妞学堂
+老霸蛮电商
+出了名的人马主
+用户76094655417
+www.weidianyuedu.com
+西瓜创作研究...
+吾皇畅谈
+巨量引擎
+痣哥侃生活
+麻雀电商汇
+李东芽
+东方网
+潇湘晨报
+鑫老板电商
+券商中国
+老潘随笔123
+传媒Q老板
+DoNews
+阿华网络笔记
+孤城聊电商
+炎淼杺岚
+电商老斑鸠
+营销圈
+老高电商俱乐部
+探索者科技
+专业防雷接地王工
+强子生活日记
+电商水寒
+小胡说运营
+九头蛇淘宝论坛
+直率瘦美人
+三次成长财商...
+每日经济新闻
+wuti5.com
+人民网
+电商指导师小成
+中研网
+www.oh100.com
+阿宝宝v
+睿智的isake
+www.raopengfei.cn
+美丽动情年华十分
+中国证券报
+良辰淘客
+新摘商业评论
+运营的小事
+趣模板
+电商运营小哥
+赞皇电商服务中心
+绵阳共青团
+上游新闻
+易猫天下
+6ke.com.cn
+cn.chinadaily.com.cn
+轩少xuan...
+新华网客户端
+小蕊运营指导
+一个肥脸
+www.xugeblog.com
+腾讯课堂
+心电电商说
+爱生活的沐小兮
+觅东东数字员工
+bk.5588.tv
+电商末班车
+王青蒿
+优设
+建众智业
+讲师宝
+品观网
+洒脱的二丫头
+淘宝美工
+跟阿杰学设计
+智慧河流小姐姐
+猫眼放映室
+运营狗
+www.pooto.com
+南方plus客户端
+商业小风车
+曈觞
+cloud.tencent.com
+ZAKER
+大冰01
+www.shuaishou.com
+星上传媒
+运营文件夹
+36氪
+快儿网络
+电商懒人华
+市场部网
+电商宝SCRM
+妞妞跟拼多多...
+祥云牧鸽
+蛋解创业
+价值号
+五色影视
+跨境移花宫
+木小白Vlog
+jingyan.lifeve.cn
+成都老吴
+老司机说电商
+3DM
+番茄拌橘子
+永恒爱分享
+www.woyaowz.net
+平原骚客
+掌桂电商解说
+电商运营黑木
+要的短视频
+135微信编辑器
+佳影666
+曹扬GeoffreyCao
+大材研究
+销客多
+你好王同学WJ
+科创板日报
+运营小课堂
+豆瓣阅读
+队长聊
+风闻社区
+运营七七gogogo
+外卖怪
+岳小七
+虾米熊123
+影视后期系统教学
+小洋哥科技参考
+讲真话的韩沫
+流浪傻妞
+伟伟道来king
+小莉只馨
+豌豆荚
+妞妞酱爱分享
+waeke.cn
+www.kd123.cn
+电商运营枫叶
+爱钓鱼的糟老王
+高级运营阿晶
+城事特搜
+gd.huatu.com
+互联网评论
+直男读财
+汉聪电商
+www.kaopuyunying.com
+www.znj.com
+news.hsw.cn
+中国政府网
+www.queqia.com
+黑白IT控
+资源邦—每天分享
+xxrb.jxnews.com.cn
+电商人苦行僧
+小哥翰林
+淘豆网
+自在云朵A
+上观
+www.xingtaiseo.cn
+m.ishare.iask.sina.com.cn
+www.piqiseo.com
+贝贝导师
+自媒体人佬王
+安厦网络
+方老四
+焘焘创业笔记
+花花互联网知识技能
+普华文化
+www.hqwx.com
+www.kettas.net
+麦淘网
+三土说电商
+ishare.iask.sina.com.cn
+资深电商达人
+见不凡公开课
+熊大直播创业
+货品源
+民墅家自建房设计
+虎嗅
+南国早报
+那句晚安你听了吗?
+ddcm.liuliucanmou.com
+金婵学堂
+用户2887697458048
+盛铭轩电商
+亿家一家社群
+m.leha.com
+峰哥聊电商
+垄田尚品
+牛11的棒麻麻
+素年1027
+热门财经谈
+千诚老师
+大学网
+电商人独目
+电商实战运营
+宜日达
+襄阳市场监管
+杭州名道电商运营
+财经故事会
+www.yymiao.cn
+寻空的启示录
+头条公开课新手课堂
+数钥分析云
+乡村振兴周老师
+辰飞创客笔记
+什么值得买
+www.zhipin.com
+m.udxd.com
+kk影视最前线
+算法博友
+阿里巴巴运营小知
+网易
+www.adfm.cn
+专注中小企业发展
+勤问电商
+疯疯疯狂电商人
+财经下午茶
+创联君
+www.tianmaodianpu.com
+DV现场
+少鹰
+www.teaidea.net
+中公优就业
+星扒客Firstly
+校企云工Int
+电商洪海儿
+电商爆爆料
+华强北沙大爷
+云客混着挺好
+运营青橙
+锦盛运营
+乐创餐饮资讯
+枫叶电商干货
+制片帮
+m.ebrun.com
+电商新达人
+人间温暖纪实
+小丫头脾气拽51
+郊外老杨
+音乐魔方盒
+中国新闻网
+m.cqcb.com
+赵博祥i
+app.cctv.com
+行者的职场频道
+创业邦
+时趣
+荒野赛电商
+www.iwanshang.cn
+拓商网络科技
+淘宝运营老六
+非常安宁
+百万头条
+落日雁君直通车
+封面新闻
+www.nap6.com
+司空电商会精选
+讲电商的阳帆
+我不写笔记
+北漂燕子1W7s
+奕均新传播
+考古加数据
+sn.ifeng.com
+电商新视野C
+雨不休
+老鲁先生
+中国商报
+羡羡有干货
+装汇网
+外卖爆单运营夏老师
+羽页讲电商
+电商全哥
+王小择
+www.kjdsnews.com
+用户2037549793042
+m.jzcjmw.com
+小2哥
+黑马公社
+配搭说
+奋斗的小璐
+电商运营冷锋
+电商陈果
+逆生长老顽童
+相学Vlog
+shopyy独立站星推官
+哎鸭音乐
+寒剑 电商卖家
+澎湃新闻
+聪明优雅乐逍遥
+m.yubaibai.com.cn
+双木林cheng
+子键跨境创业
+www.fuyehui.cn
+运营小咖秀666
+amz小梦想家
+淘铺王
+wz.yuzhua.com
+糖醋排骨鱼
+www.taobaodaji.com
+人人文库
+www.137zw.com
+上海法治声音
+盛世教京东
+阳和蕊
+www.seo-link.cn
+来壹票你身边的活动
+三头六臂跨境电商联盟
+乐天107
+电商论文精选
+常问电商
+新媒体小课堂
+m.kelankeji.com
+巨量课堂
+污碳
+张贵勇商行
+武汉燕子说电...
+财迷主妇自媒...
+古月如歌519
+职否
+超哥说真话
+一贱书生搞笑
+电商人杰哥
+班燕电商实训学院
+一品威客
+应届毕业生网
+芭乐说电商
+萬星读書
+阿楚说电商
+www.wangye.cn
+李烨电商
+俊小俊干货分...
+就到家啊下班后
+阿真吃与学
+hongshen.net
+www.youmengdaxiazuofa.net
+财评小妹
+fapiao.youshang.com
+渔夫初枫
+三十三点三
+头号文记忆力
+电商运营蓝莓
+电商木心
+道客巴巴
+云蔓创业说
+咔咔讲营销
+领星ERP
+乡村静静电商
+YMS黑板报
+不服老的少年
+南宫过儿1
+芒果生活日记
+我是钱
+艺见
+西安新闻网
+剪映大咖养成记
+zjkltd.com
+丰迈电商
+外贸独立站搭建
+进取天生傲骨
+电商小甜菜
+首都网警
+www.dawen360.com
+人民日报
+运营boy
+Chen321
+浠爷本爷
+爱运营
+亿邦动力
+老马识途
+www.vfuw.cn
+www.quanzhongdashi.com
+四海网
+双子树
+乐创思维
+www.juyifx.cn
+爱给网
+ads.org.cn
+五爷叔
+www.chulaizou.com
+碧圣电商运营
+qncyw.com
+红枫枫姐
+户外资料网
+YQN谦谦君子
+启中职业培训学校
+熙聊财税
+猫小库
+www.yunzng.com
+finance.sina.com.cn
+detail.1688.com
+邯郸V视
+祥悦爸比音乐汇
+咿呀咿呀呦哈吼
+沉没的泰坦尼克号
+无心的运营攻略
+finance.ifeng.com
+www.668191.com
+www.jinchutou.com
+懂你课堂
+一度智信电商
+成都与梦同行
+天龙魔神座
+泡菜说电商
+工控维修实战
+电商人李勇
+物流产品网
+见龙在田
+社交电商运营公开课
+厚昌网络赵阳
+modun.co.chinaweiyu.com
+玺承云学堂
+爱开淘
+于老板聊创业
+中华网河南
+丰速科技
+www.6ke.com.cn
+羚感科技
+涵煦读书
+雨果网
+观星树
+去去多
+三人行管理咨询01
+jonnyschares
+平安普法
+简析果
+深圳时光在线活动策划
+电商炎名
+稻草人在线
+知舟天猫入驻
+www.pintu360.com
+大尼
+三方思令部
+剑客李
+广丰龙湖杨梦飞
+mt.yuzhua.com
+电商带货攻略
+智凡书库
+首席老板智库
+北抖星空
+j模式创立人雪荣
+电商熊二
+www.sogua2008.com
+苏商会
+UseePay跨境支付
+名正李顺
+爱q生活网
+林哥说商业
+www.huopubao.com
+聚美丽中国
+美助未来艾米
+站长之家
+微三云软件开发小胡
+啊星《专注商业0-1》
+新民网
+零售商业评论
+小央视频
+ILY9
+电商大脑
+子非鱼安知鱼何乐
+美迪电商教育
+www.seo-ue.com
+淳化电商E家
+初一聊电商
+浙江日报
+电商运营白起
+多米咨询
+梦想家联盟科技
+一起学堂
+三个娃的从姐姐要努力
+创头条
+视听观察
+家具头条
+电商人老马
+K2电商教育...
+多霖新通路
+小咖视频制作
+全国党媒信息公共平台
+十九说电商
+知舟电商入驻
+电商小猴子
+news.huaxi100.com
+www.zyhuo.com
+www.budan125.com
+skill分...
+树江教育
+手机和讯网
+七仔说电商
+聚焦电商职教
+电商人的独白
+景德镇南河公安
+非常旺铺
+电商二哥
+blog.naibabiji.com
+信用福建
+白鲸出海
+廖丹说短视频直播电商
+浮森电商工具箱小助手
+我看电商
+m.sohu.com
+中国期刊网
+周夕人
+晓晓电商vlog
+用户879852381274
+www.qiyexinxi.net
+摄图网
+www.xztao.com
+脉豹文化
+图说不是瞎说
+www.ycpai.cn
+l秋松l
+大牌自媒体
+浅忆乄吴
+淘哥电商
+电商小阿彪
+nzyds.com
+电商的诗和远方
+跨境电商鹰熊汇
+林枫电商说
+青芒科技张坤
+鱼叔电商小知识
+命老板
+www.icvote.com
+橘子7343
+www.lakwdian.com
+杨阳优选
+m.lw881.com
+卜聊之聊
+www.wangbinchao.cn
+泡椒雪梨
+电商俊秀琅琊君
+ps教程学习
+万群联盟
+独立站实操运营
+jinchutou.com
+华南电脑教育者
+124.223.60.45
+www.11467.com
+齐鲁壹点
+TopMarketing
+download.csdn.net
+全域研究社
+职场生活百态
+www.phcyw.com.cn
+m.huodai888.com
+吴六柒
+燕无类
+老陈聊跨境
+邯郸地区人
+杨舒电商运营0549
+m.menbie.com
+四海熊哥
+news.hangtunggroup.com
+胶卷
+gzyiyc.com
+直通车实操数据分享
+跨境分享者Simon
+金锄头文库
+吉宝电商
+房天下资讯
+渔夫学堂大冰
+zyf7496
+电商子衿吖
+海纳与你同行
+灵感怪兽
+m.fang.com
+孔雀aa
+www.epwk.com
+闫庄丽
+破产创业小夫妻第一人
+电商杨六斤
+傻傻的婷婷
+引流电商
+i.ifeng.com
+黑灰经
+淘商会
+第三只眼看零售
+玺承
+店匠Shoplazza
+m.html.cn
+淘系电商研究所
+嘉睿商学院
+棒棒糖哦哦
+电商知识
+www.zhantian9.com
+短视频运营光头哥
+炯目副业笔记
+网店小优
+tf14lang
+www.xiadanzhuanji.com
+宅木头
+罗华山餐饮o2o
+创业小岩90
+西乡县开宏广告
+门别网
+douyin.maohoo.cn
+电商快乐水
+PPT模版大...
+邹老师的商业笔记
+醒道
+中国网财经
+beijing.huangye88.com
+大池Rach...
+Sorftime
+星广传媒
+江齐聊拼多多
+记得我叫大汉
+侃侃SEM
+A5创业网
+淡淡的蓝猫
+爱用智能网站
+m.715716.com
+小睿奇趣秀
+中华会计网校
+www.renrendoc.com
+阿咚的商业分享日记
+李显红频道
+大农户大智慧
+百马汇跨境电...
+轩邦电商
+枫影网络科技
+小漆短视频
+新榜
+www.laiketui.com
+智能帮
+电商运营精华干货
+老迷追剧
+周愚
+荣哥说电商
+淘宝代运营易亚
+南京大班网络科技公司
+逍遥老师的黑板报
+大源电子商务有限公司
+不凡智库
+今日头条
+姜浮云
+HiShop移动云商城
+秦绪文自媒体
+视觉设计ing
+观界商业
+会声会影
+答应我别乱跑
+十年实操电商人
+电商运营可乐
+电商玖辞
+动漫影视白兜兜
+新闻晨报
+IT之家
+集号吧
+www.taogq.com
+店小鱼电商卖家助手
+m.zcool.com.cn
+灵生文化创意
+www.dssh365.com
+桶子电商
+兔展智能
+王智远
+企小码
+www.5pao.com
+红人客经纪人雨哥
+卧龙说电商
+喜马拉雅
+诸十达亚马逊跨境电商
+博学阿川哥
+新京报商业观察
+it.huangye88.com
+双木独立运营...
+大崔漫谈
+荷若风情感间
+小杰运营0628
+18183手游网
+蓝海亿观网
+辛巴服装设计1
+电商运营路飞
+浙江钇晨电子商务
+www.waimao88.cn
+溪叔号
+龚先生的范儿
+震宇Z御佳直通车
+高手NG民间
+张轩说电商
+南方都市报
+电霸Shopee
+抛弃怜悯w
+运营晶晶
+亿邦动力马蹄社
+点石外贸圈
+南山分享
+博士店长
+m.thepaper.cn
+微赞
+萧何电商运营
+m.maijia.com
+电商麒麟
+www.cifnews.com
+商业小纸条短视频
+检管家
+中企动力
+TIMING-MarTech社区
+五音不玄
+上线了
+首席商业评论
+语言学习干货
+space.bilibili.com
+母婴行业观察
+小小自媒体干货分享
+博恩电商
+紫牛新闻
+阿空直播运营
+global.lianlianpay.com
+电商运营小开心
+凌晨两点的你Today
+www.chenyunxin.cn
+www.132234.cn
+蚂蚁虫
+法治日报
+建墅米兰
+一个大朋友a
+厂间八卦见闻
+中国电子商务研究中心
+媒师姐
+www.dsdh123.cn
+青瑞学院
+京东商家培训...
+奇葩趣闻plus
+学海网
+小染的运营干货
+江大妞the
+61552198453
+hea.china.com
+m.cifnews.com
+大青岛段友
+抖抖侠
+s61688899
+阿里巴巴网
+Po数码
+幸运小小小草
+电商凹凸镜
+www.zhantianz.com
+新媒体运营s
+www.meipian.cn
+小洛Pony
+老巴聊跨境
+视创研究院
+ke.qq.com
+m.qncyw.com
+电商运营琳玟
+电商谦谦
+湖北尚宏网络
+DearAuto
+珠海市场监管
+咸鱼网
+www.ssduo.cn
+牛片网
+招商银行App
+无意义的记录
+梁子湖电商
+www.abwuliu.com
+club.1688.com
+安徽悦来悦好
+新期望电商
+跨境刀哥
+淘一猫电商
+m.300.cn
+浩然电商
+fuwu.huangye88.com
+南方财富网
+汁源爱分享
+小麓谈运营
+萌萌小主
+元宇宙知识库
+亲民创业网
+一扇门教育
+温新文聊电商
+有米有数
+JZ5U绿色下载站
+老彭老小孩
+乌鸦聊电商
+人人都是产品经理
+巨牛studio
+跨境的虾皮
+记住电商大课堂
+照顾酱
+九妄oc
+那木研习社
+淘宝课堂解析
+39微商货源
+职场化缘人
+item.kongfz.com
+李晓明商业洞...
+琳琳吉祥呀
+Lindaman1990
+电商运营小卡
+手可摘花花
+www.zhitongshan.com
+电商资源阁
+周宏频道
+pkzhenghao.cn
+西瓜聊大咖
+电商运营日记
+新快报
+人人都是自媒体
+运营官—老丁
+九菊聊电商
+店铺分析手
+晓玲
+猫九电商笔记
+品融电商
+糖糖自媒体老大
+小哥聊电商
+京一咨询专注京东运营
+启航电商网店...
+你说电商怎么说
+商界杂志
+v.163.com
+finance.sina.cn
+C猪大肠
+疯潮科技
+江东自媒体
+电商拼多多阿峰
+anan
+杜小敏Vlog
+畅捷通
+沙雕二林子
+zixun.57xg.com
+大森林全球物流
+互联网营销师考培入口
+深港在线
+司慧网络
+库存鞋子服装基地
+www.hg-news.cn
+老李谈电商
+博客园
+电商小生
+华尔街见闻
+勇者小爱
+www.shanketui.com
+www.dashengerp.cn
+m.ycpai.cn
+www.dianxiaocan.com
+五哥聊电商
+创推学苑
+王孟妍爱运动
+www.deksu.com
+m.huangye88.com
+www.hottx.com
+小郁儿的屋子
+流量看护人
+海城电商馆
+xueqiu.com
+自由的风子吖
+诸葛锦囊
+第一范文网
+鸟哥笔记App
+川观新闻
+卢松松
+电商运营不迷...
+聚闪闪电商
+OST传媒
+网商情报站
+义乌丹源
+menbie.com
+电商冰可乐
+玺承电商
+有一说1
+蒋晖电商
+一网一匠
+跨境知道合规
+田野MAX
+cc大老表
+忠洋的每日原创
+诺贝儿5O9o
+零售威观察
+东哥解读电商
+www.tuoguan1.com
+老鸟果叔说电商
+淘宝运营张骞
+小陶聊电商
+电商运营小开...
+手机用户77...
+酱小姐爱吃蜜
+月儿策划
+咻咻商
+企业管理干货
+电商报
+千百度18
+新华网
+www.mgzxzs.com
+是御姐桃子
+时代财经
+熊猫办公
+小青年电商创业
+淘宝数据分析
+人山人海网
+电商运营猫猫
+瑶瑶创业中
+华锐视点VRAR
+多多运营西洲
+www.selmuch.com
+中商情报网
+zx.kaitao.cn
+www.cyzhijia.cn
+化妆品财经在线
+该死的美女1433223
+装企活动小百科
+邯郸seo
+taijiyunwaitui.com
+金花小姨妈
+www.kuajingya.com
+小强哥新零售
+趣丁网
+四少爷看世界
+豫见红文
+iSellerPal数派跨境
+单仁行
+圣代圣代侠
+大希淘生笔记
+凌枫的运营笔记
+www.cfznw.com
+成都店伯乐
+龚文祥
+申川老师
+冷冻食品观察
+info.hhczy.com
+单行科技
+徐老三搞电商
+头条健康情报局
+图谊
+小崔种菜
+知小舟网店入驻
+大师哥自媒体
+电商科技观
+运营鹅
+二三里资讯西安
+子丞电商
+小鹏电商
+一剪芳华录
+Penley哥
+淘宝
+风向区电商服务
+李岛主
+外卖黑子
+鑫哥聊电商
+天猫服务商
+入驻T猫人

+ 0 - 0
ExecuteStage/desc_crawl.py → Examples/Sample Tasks/desc_crawl.py


+ 0 - 0
ExecuteStage/list.xlsx → Examples/Sample Tasks/list.xlsx


+ 0 - 0
ExecuteStage/main.py → Examples/Sample Tasks/main.py


+ 0 - 0
Examples/Sample Tasks/raw_data.csv


+ 0 - 0
ExecuteStage/tianyancha.py → Examples/Sample Tasks/tianyancha.py


+ 3227 - 0
Examples/Sample Tasks/关键词 - Real.CSV

@@ -0,0 +1,3227 @@
+淘宝店铺流量突破之淘宝店铺层级的正确理解
+关于转化率的思考—是谁动了你的转化率
+2017不刷单你知道怎么提升销量?
+电商淘宝天猫选品测款
+直通车如何提高搜索权重,甚至拉高自然搜索
+简单说下直通车开车时的禁忌
+垂直型平台和场景电商的关系
+手淘搜索技巧的问答闲谈----天猫小运营
+运营大吐槽
+无货源淘宝店群项目日记第1篇:新搞两个店,重新起航!
+无货源淘宝店群日记第3篇:石榴已经上市,准备启动爆卖!
+无货源淘宝店群日记第4篇:冲动开车损失惨重!
+无货源淘宝店群项目日记第2篇:选择产品,做好裂变!
+无货源淘宝店群日记第5篇:选好产品就成功了一半!
+网淘那些事之电商日记第10篇:刷单是每个电商人心中抹不去的痛
+网淘那些事之电商日记第11篇:找准自己维度,精细化推广引流!
+网淘那些事之电商日记第12篇:手淘首页改版后到底意味着什么?
+网淘那些事之电商日记第7篇:明知山有虎偏向虎山行,食品不易做
+网淘那些事之电商日记第8篇:东方不亮西方亮,拼多多拔地而起!
+网淘那些事之电商日记第9篇:推广引流外继续补充自然流量订单!
+网淘那些事电商日记第6篇:缺货真的很坑爹!
+网淘那些事之电商日记第13篇:无货源店群项目的来世今生!
+网淘那些事之电商日记第14篇:无货源店群需要准备的前期工作!
+网淘那些事之电商笔记第15篇:操作淘宝无货源店群项目如何避免平台违规!
+网淘那些事之电商笔记第16篇:店群操作需要用到的工具!
+网淘那些事之电商笔记第17篇:无货源店群操作必须精细化选品!
+网淘那些事之电商笔记第18篇:店群如何获取标题裂变需要的词根和产品词?
+网淘那些事之电商笔记第19篇:无货源店群操作如何上传商品和裂变!
+网淘那些事之电商笔记第20篇:为什么你做无货源店群收益不高?
+网淘那些事之电商笔记第22篇:无货源店群的基本数据分析!
+1周3条视频涨粉40W,资深运营亲授实操经验
+90%的运营都会犯的2个错
+「富察皇后」下线后去哪儿了?扒扒小红书的KOL运营策略
+淘宝8.8元包邮的暴利从何而来?
+运营社电台:内容运营做流量引入的4种方式
+运营社电台:内容运营如何做好话题策划
+饿了么到底有多“贼”?揭秘它一步步让你下单的套路!
+网淘那些事之电商笔记第23篇:村淘的玩法套路
+网淘那些事之电商笔记第24篇:商品的多次优化和调整
+传说中的淘宝天猫运营,一天都在干什么?
+开直通车理解了这些,不怕不会降低PPC!【透过数据看原理!】
+抓住社交电商——将店铺与社群营销结合的玩法,了解一下
+网淘那些事之电商笔记第25篇:优化店群单品打造爆款!
+网淘那些事之电商笔记第26篇:店群客服的工作流程规范!
+“拿什么拯救你的直通车”案例分享——定向引流打爆首页
+网淘那些事之电商笔记第27篇:店群团队化运营的管理!
+小白必看的套路与思维,电商入门其实没那么难
+电商大数据如何定位细分潜力市场!
+我为什么要做运营技能地图?
+电商血泪史:淘宝天猫没销量,卖家无奈转型做跨境电商
+想用直通车拉搜索,这些底层逻辑和技巧必须清楚。
+国内电商人流挤压,头破血流,天猫淘宝拼多多纷纷转行跨境电商
+淘宝暴力黑搜玩法让新品7天流量暴涨5000+
+运营不是打杂的
+新手卖家如何运作好直通车
+网淘那些事之电商笔记第28篇:拼多多店群操作的模式及选品思路
+网淘那些事之电商笔记第30篇:淘宝48公告后店淘(店群)何去何从?
+网淘那些事之电商笔记第31篇:拼多多无货源店群开店的准备工作!
+网淘那些事之电商笔记第32篇:拼多多店群的选品逻辑!
+网淘那些事之电商笔记第33篇:做拼多多店群真的有很多坑么?
+网淘那些事之电商笔记第34篇:操作无货源店群被投诉售假怎么办?
+网淘那些事之电商笔记第35篇:拼多多无货源店群如何做到高产?
+网淘那些事之电商笔记第36篇:拼多多店群如何突破8%限价!
+网淘那些事之电商笔记第37篇:无货源店群如何寻找同行商品!
+网淘那些事之电商笔记第38篇:操作拼多多无货源店群如何避免发货不及时被罚款?
+网淘那些事之电商笔记第39篇:拼多多无货源店群如何避免客服违规?
+网淘那些事之电商笔记第40篇:拼多多无货源店群如何避免引流违规?
+网淘那些事之电商笔记第41篇:无货源店群上货到底是采集好还是裂变好?
+网淘那些事之电商笔记第42篇:如何安全的通过补单来维持单品的销量和权重?
+网淘那些事第44篇:拼多多无货源店群如何选品?
+(电商老黑)教你淘宝新手卖家如何去定价宝贝
+一个好的市场比关键词还重要的多
+如何完美优化直通车精准人群标签人群的定义与作用
+(电商老黑)如何让你的店铺三天内爆发手淘首页流量
+网淘那些事第45篇:无货源店群如何过滤筛选易违规商品?
+(电商老黑)专业淘宝运营为您揭秘什么是实时权重
+(电商老黑在线陪聊)你真的了解直通车吗
+(电商老黑)教你如何避免“隐形降权”
+网淘那些事第46篇:无货源店群如何避免采集他人店铺商品的违规处罚?
+网淘那些事第47篇:拼多多无货源店群如何用软件上货(1)
+(电商老黑)如何成为一个好的运营
+(电商老黑)淘宝深为人知的套路
+(电商老黑)淘宝的蓝海产品有什么挖掘的途径
+(电商老黑)分享如何才能稳健的提升自己的淘宝店
+(电商老黑)直通车的玩法会让自动流量成转化率
+新淘宝店如何提升店的流量?
+(电商老黑)常见的淘宝卖家为什么还会出现开车低的问题
+淘宝开直通车有哪些技巧?
+网淘那些事第48篇:拼多多无货源店群如何利用软件上货(2)
+网淘那些事第50篇:淘宝店铺被平台判定售假后还能挽回流量么?
+打造爆款的思路,你了解多少呢?
+注意!!!淘宝推广的新玩法
+网淘那些事第51篇:电商新手在淘宝开店要注意哪些降权违规?
+直通车引流花费高没效果?
+新手淘宝开店创业可以选择做什么?
+网淘那些事第52篇:新手电商创业到底该选择淘宝还是拼多多?
+淘宝直通车怎么入门更快?
+网淘那些事第54篇:无货源店群如何通过抖音选择热卖商品?
+淘宝新店新品怎么得到更多的流量
+临近618活动大促销,如何开直通车
+网淘那些事第56篇:如何通过补单让单品获取更多的权重和流量?
+(淘淘慧通老黑)淘宝运营终极大招,不成功真的不是因为不努力!
+(淘淘慧通老黑)618的深度打造爆款了解一下咯
+(淘淘慧通老黑)如何优化店铺的关键词
+(淘淘慧通老黑)补单的时候怎么筛选人群
+致淘宝中小卖家:618活动促销的最新做法
+网淘那些事第57篇:食品电商最容易被职业打假人盯上的几个方面!
+网淘那些事第58篇:无货源店群如何通过采集软件筛选蓝海词?
+必看!淘宝新手如何上传宝贝
+抖音是怎么做社交电商的?
+淘宝新店新手如何去找关键词
+抖音的推广方式,如何打造爆款视频?
+如何做好自己的抖音账号?这五点教给你
+抖音短视频又玩又赚只需四步,抖音运营干货分享
+抖音运营创业,这五点你必须知道!
+网淘那些事第59篇:无货源店群如何根据节假日热点来提前选词选品?
+抖音网赚其实很简单,敢想敢做你就是赢了一半
+抖音企业蓝V有哪些特权,企业到底要不要做抖音
+网淘那些事第60篇:京东无货源店群适合注册什么类型的店铺?
+怎么做好抖音运营,抖音如何做推广,抖音广告怎么推
+怎么打造抖音流量池等级,怎么能让抖音有流量
+简单改变短视频内容创作方式,一月上销量榜17次
+抖音推荐机制算法解析大全,抖音为什么会让人上瘾
+网淘那些事第61篇:掌握这三点,入驻京东可以让你少走很多弯路!
+网淘那些事第62篇:入驻京东快速注册企业钱包的操作要领!
+网淘那些事第63篇:无货源店群一件代发到底是怎么赚钱的?
+网淘那些事第64篇:无货源店群一件代发玩法能不能长久做?
+网淘那些事第65篇:如何通过正规渠道删除淘宝天猫中差评?
+[跨境工具通]完全免费的Shopify商品推荐插件GloboUpsell,多图
+新手如何做拼多多?
+网淘那些事第66篇:京东无货源店群与淘宝无货源的区别!
+网淘那些事第67篇:操作京东无货源店群过程中常见的5个问题!
+网淘那些事第68篇:了解这7点,做电商想不成交都困难!
+网淘那些事第69篇:京东平台常见的违规及罚款解读!
+淘宝店铺如何快速获取流量
+网淘那些事第70篇:如何加入淘宝联盟成为淘宝客赚取佣金?
+淘宝新手卖家如何提升店铺流量
+淘宝中小卖家店铺开店需要掌握的知识
+网淘那些事第71篇:如何利用生意参谋工具选出有潜力的爆款?
+电商骗子大总结
+如何打造黄金标题,上架即成爆款?
+网淘那些事第72篇:如何提升店铺权重获取更多免费自然流量?
+淘宝信后卖家必须理解这九大误区
+网淘那些事第73篇:无货源店群如何通过店铺运营提升销售额?
+网淘那些事第74篇:中小卖家如何挖掘消费者需求提高订单转化率?
+网淘那些事第75篇:店群如何通过主图和详情页避免采集到易违规商品?
+网淘那些事第76篇:卖家如何匹配消费者行为标签来提升店铺流量?
+想做电商,有哪些建议?
+外卖越来越精致,背后原来是代运营在“搞事情”?
+如何优化你的直通车推广计划!——淘宝店铺运营
+社交电商怎么做
+拼多多还是是拼多多还是坑多多?你看着淘宝的教程做拼多多,不死才怪!
+网淘那些事第77篇:女装网店如何做营销活动和推广来提升销售额?
+网淘那些事第78篇:新手操作无货源店群是选择大类目还是小类目?
+网淘那些事第79篇:淘宝店铺的个性化标签是如何形成的?
+网淘那些事第80篇:无货源店群如何上传商品才能确保店铺安全?
+如何乘上社交电商与新零售制造的巨大风口
+网淘那些事第81篇:无货源店群如何上传新品才能获取更多的流量扶持?
+网淘那些事第82篇:无货源店群单类目精细化操作的核心是什么?
+网淘那些事第83篇:无货源店群单类目精细化玩法需要做哪些优化?
+网淘那些事第84篇:一旦被淘宝判定售假会有哪些方面的影响?
+网淘那些事第85篇:淘宝无货源店群如何维持及提升店铺品质分?
+网淘那些事第86篇:无货源店铺与有货源店铺有什么区别?
+网淘那些事第87篇:拼多多无货源店群什么商品能成为小爆款?
+网淘那些事第88篇:淘宝无货源店群如何提升新品搜索权重?
+网淘那些事第89篇:拼多多无货源店群如何找出蓝海词来组标题?
+网淘那些事第90篇:拼多多无货源店群如何获取更多免费搜索流量?
+网淘那些事第91篇:无货源店群新品出单第一个月数据至关重要!
+如何提高拼多多店铺的商品转化率?
+网淘那些事第92篇:拼多多单类目精细化如何获取类目免费流量?
+网淘那些事第93篇:火山视频无货源店群玩法的简单介绍与分析!
+网淘那些事第94篇:火山视频无货源店群玩法需要做哪些准备?
+网淘那些事第95篇:火山无货源店群如何打造热门爆款视频?
+网淘那些事第96篇:火山无货源店群如何快速开通店铺及小黄车?
+流量对于社交电商的重要性
+网淘那些事第97篇:火山视频无货源店铺如何快速打造商品销量?
+网淘那些事第98篇:利用火山视频矩阵玩法打造火山无货源店群
+跨境电商选哪个平台好?
+网淘那些事第99篇:火山视频无货源店群的三种盈利模式!
+网淘那些事第100篇:利用火山视频无货源盈利的高阶玩法介绍!
+数据威618美妆个护行业市场分析
+网淘那些事第101篇:淘宝无货源店群如何玩转服装鞋包非标品?
+网淘那些事第102篇:为什么要让无货源店铺的类目标签明确?
+网淘那些事第103篇:双11大促,电商卖家该如何参与活动?
+网淘那些事第104篇:无货源店群精细化玩法如何选择店铺类目
+网淘那些事第106篇:淘宝无货源如何获取手淘首页猜你喜欢流量?
+网淘那些事第107篇:淘宝严控大量复制他人宝贝背后的稽查逻辑!
+踩住换季节点,看直通车如何拉动近万搜索和首页
+网淘那些事第108篇:拼多多无货源店群现状如何,还可以操作么?
+网淘那些事第109篇:单类目精细化无货源店群之店铺定位分析
+网淘那些事第110篇:如何利用抖音的推荐机制与算法原理上热门?
+网淘那些事第112篇:精细化无货源店群如何做店铺和商品优化?
+网淘那些事第113篇:淘宝和拼多多这两个电商平台有什么区别?
+网淘那些事第114篇:什么是店铺动销率,与售罄率有什么关系?
+网淘那些事第115篇:无货源店群项目还能玩么?什么样的人不适合?
+网淘那些事第117篇:操作无货源店群,店铺中商品该如何定价?
+网淘那些事第118篇:无货源跨境电商火热,是否值得去操做?
+如何把你自己的淘宝店铺做好,你想知道的问题这里都有答案
+从三点分析,电商运营每天都是看的哪些数据!
+网淘那些事第119篇:新手做电商容易陷入误区之产品误区!
+最新的淘宝权重规则简单的了解,一起来了解一下吧
+淘宝运营会陷入的七个误区,避开就等于成功了一半!
+淘宝运营教程:教你30分钟写出10分的淘宝标题
+转化率不高?那是你没来这里看看,教你无限提高转化率(淘宝干货)
+网淘那些事第120篇:新手做电商容易陷入误区之付费推广误区!
+直通车深度进阶场景与搜索深度关联拉动自然流量
+网淘那些事第121篇:新手做电商容易陷入误区之刷单误区!
+网淘那些事第123篇:新手做电商容易陷入误区之平台误区!
+网淘那些事第122篇:新手做电商容易陷入误区之销售额误区!
+网淘那些事第125篇:一年以后再看无货源店群会是什么样?
+网淘那些事第126篇:无货源店铺访客流量突然下降该如何挽救?
+双11复盘:如何把握细分市场增长机会
+网淘那些事第127篇:无货源店群精准锁定蓝海词制作宝贝标题!
+电商创业必读丨新品应该怎么引流推广,打破店铺流量囧境
+淘宝新功能抄拼多多还“杀熟”,扒一扒那些坑你的会员套路
+电商干货直通车拖价发怎么玩
+教你如何分析电商平台的数据
+内容电商是什么
+这样做详情页,你的产品会说话——详情页到底需要哪些内容
+店铺流量、转化突然下滑?看你换季产品切换方式是否正确!
+电商运营不会做?教你解答电商运营的攻略
+淘宝新人必看:如何快速提升宝贝权重
+如何提升店铺权重
+2019电商三大趋势
+淘宝运营引流怎么做?
+淘宝运营小白快来,这里有你期待已久的干货!
+从菜鸟到大神的电商运营
+电商运营的干货——不废话,直接上
+运营牛人必备的技巧有哪些
+为什么直播带货给力?
+「淘宝干货」新店打爆款,掌握完整思路,轻轻松松搞定自然流量
+新手如何做电商
+网淘那些事第136篇:操作淘宝无货源店群,为什么需要生意参谋?
+这些电商的运营技巧,你都知道吗!!!
+9大主流活动推广渠道
+厉害的运营为什么不自己开店铺?
+一个合格的电商运营应该怎么样
+如何通过国内电商来营销呢?
+网淘那些事第137篇:无货源店铺数量比较多该选择什么样的玩法?
+电商运营人员应该学会的数据分析的思维方式
+淘宝电商运营中的网店流量简述
+网淘那些事第138篇:拼多多无货源店群流量机制已经发生变化!
+抖音跟快手的区别在哪里
+网淘那些事第139篇:无货源店群上传商品过程中需要注意什么?
+网淘那些事第140篇:无货源店群到底是注册个人店还是企业店?
+电商是否还有小商家的道路
+天猫的运营模式
+如何进行电商选品,你知道吗?
+网淘那些事第141篇:无货源店群如何操作冷门暴利产品?
+网淘那些事第142篇:无货源店群如何找出有效的关键词来选品?
+网淘那些事第143篇:无货源店群一件代发春节期间必做的三件事!
+网淘那些事第144篇:无货源店群如何不用软件来人工选择商品?
+网淘那些事第145篇:无货源店群过年期间容易出问题的几个地方!
+网淘那些事第146篇:操作无货源店群的8大黄金法则!
+网淘那些事第147篇:无货源店群什么样的商品能够获得平台的流量?
+网淘那些事第148篇:无货源店群如何优化商品标题提升店铺流量?
+网淘那些事第149篇:无货源店群做到极致就是顶级的电商运营!
+网淘那些事第150篇:新手做电商必须搞清楚的3种操作类型!
+网淘那些事第151篇:无货源店群的高阶操作应该关注哪些内容?
+网淘那些事第152篇:无货源店群获取高额收益的四个核心步骤!
+网淘那些事第153篇:无货源店群如何快速制作主图视频提升权重
+网淘那些事第154篇:无货源店群一件代发店铺的终极优化技巧!
+网淘那些事155篇:无货源店群如何利用软件上传商品时更换标题?
+网淘那些事第156篇:无货源店群如何利用淘客选品来增加收益?
+网淘那些事第157篇:无货源店群如何做好团队的配置与管理?
+网淘那些事第158篇:无货源店群卖家315应该注意哪些问题?
+网淘那些事第159篇:电商运营到底是干嘛的?工作核心是什么?
+网淘那些事第160篇:无货源店群如何卖爆标品!
+网淘那些事第161篇:拼多多无货源店群如何利用好拼小圈功能?
+为什么你的短视频播放量连500都上不去?
+如何让你的标题直击读者的痛点
+正确运营抖音短视频的五个方式,进来学习!
+网淘那些事第164篇:淘宝无货源店群直通车打造小爆款的核心?
+网淘那些事第165篇:无货源店群如何在1688上进行选品(一)?
+网淘那些事第166篇:无货源店群如何在1688上进行选品(二)?
+网淘那些事第167篇:无货源店群如何利用直通车拉升搜索流量?
+网淘那些事第168篇:无货源店群为啥要找蓝海商品而不是红海呢?
+淘宝天猫如何经营好新店铺?
+网淘那些事第169篇:无货源店群如何快速有效的采集同行商品?
+网淘那些事第170篇:无货源店群单类目操作如何才能提升收益?
+网淘那些事第172篇:无货源店群需要合理规划商品的运营周期!
+拼多多中小卖家打造爆款的全部秘密,都在这里(上)
+拼多多中小卖家打造爆款的全部秘密,都在这里(下)
+网淘那些事第173篇:无货源单类目精细化操作如何快速出单?
+流量越来越少,销量上不去,淘宝中小卖家如何破局?
+标品丝袜高权重直通车拉搜索玩法实操
+网淘那些事第174篇:拼多多无货源店群新手入门之店铺后台介绍!
+网淘那些事第175篇:无货源店群如何分析产品的市场容积?
+网淘那些事第176篇:拼多多无货源店群新手入门之入驻开店!
+网淘那些事第177篇:无货源店群如何分析产品的前景与趋势?
+网淘那些事第178篇:拼多多无货源店群新手入门之平台规则(1)
+网淘那些事第179篇:拼多多无货源店群如何分析蓝海类目并找出热搜词?
+如何提高淘宝自然搜索以及猜你喜欢流量?
+网淘那些事第180篇:快速批量复制多个无货源店铺要注意些什么?
+淘宝新店怎么做?急速将突破月销50万!成功打造店铺!
+淘宝特价版5.9元还包邮,背后有什么赚钱秘密?
+感恩说直通车:关于直通车与自然搜索的权重
+网淘那些事第181篇:拼多多无货源店群新手入门之平台规则(2)
+关于直通车只做几个大词的问题解答
+最新最详细的淘宝开店流程!
+感恩说直通车,关于人群标签你那些错误的认知有哪些吗?
+网淘那些事第182篇:2020年无货源店群工作室的出路在哪?
+感恩说直通车:关于直通车的战略目标是什么?你不得不听!
+感恩说:直通车基础知识
+感恩说直通车:关于直通车的转化率的问题解答
+感恩说直通车:电商专业术语解释
+感恩说直通车:直通车是一个动态优化的过程
+网淘那些事第183篇:为什么你的无货源店铺没有流量?
+感恩说店群,如何安全过滤
+感恩说直通车:关于直通车的转化率的问题解答
+宝贝降权!流量下滑的十大原因!
+网淘那些事第184篇:无货源店群如何提升商品的转化率?
+感恩说电商:淘宝新手注意事项
+网淘那些事第185篇:拼多多无货源店群如何选品、测款与定价?
+新手开网店的几个小技巧
+感恩说直通车:定向如何带动首页流量?
+“补单”怕乱了人群?一招教你提前做好标签,下单标签权重两不误
+网淘那些事第186篇:拼多多无货源店铺上传商品必须知道的11点!
+网淘那些事第187篇:拼多多无货源店群新手入门之如何打造基础销量?
+感恩说电商:直通车真的是一个”坑“吗?
+感恩说电商:新版直通车的玩法和更新节点,让你们少走弯路
+淘宝抓补单检查系统的玩就是数据,基于数据分析对订单判断是否是炒作!
+《感恩说直通车:关于刷单打爆款和做直通车打爆款的区别?》
+《感恩说直通车:直通车不是为了做点击率而去做点击率》
+《感恩说直通车:关于直通车用精准匹配还是广泛匹配?》
+《感恩说直通车:关于直通车排名位置的真实性?》
+网淘那些事第197篇:无货源店群如何分析商品的类目特性?
+《感恩说直通车:关于轮播和优选?》
+《感恩说直通车:关于直通车定向》
+《感恩说电商:关于直通车关键词来源不精准的原因是什么》
+《感恩说直通车:关于计划权重》
+《感恩说直通车:关于你的自然搜索为啥上不来?》
+电商直播流量分配算法优化总结
+2020年拼多多开车如何低价引流
+100份必备淘宝电商实操运营,3分钟学会上百种运营技巧
+淘宝新手直通车基本操作
+想开网店还在死盯着淘宝?迟早赔光!
+拼多多的产品主图的设计思路
+如何短期提升店铺的自然搜索访客?如何打造爆款?
+拼多多又“玩弄人性”,5块9的「省钱月卡」套路有多野?
+电商运营干货实操技巧:万能爆搜基础实操细节
+【直通车必学秘籍】拼多多直通车有效测款测图的实操方法(上)
+直通车日常问题答疑汇总(1)
+拼多多如何选品快速出单
+开网店高点击的主图真的有那么重要吗?怎么做呢?【上半章】
+开网店高点击的主图真的有那么重要吗?怎么做呢?【下半章】
+直通车的这些操作误区,你都遇到过了吗?
+【五维标签】抖音精准引流爆单玩法
+【淘宝运营必看】3.0版本超级钻展投放策略核心解读
+非标品直通车最健康的开车玩法!你确定不学习一下?
+比拼多多还“玩弄人性”?淘宝版「省钱月卡」有何猫腻
+拼多多如何选品快速出单
+小白必备拼多多多种运营技巧,不会?你永远是个小白!!
+唯品会竟然比拼多多还赚钱?
+3分钟学会主图优化,提高点击率,流量翻倍
+【淘宝必学玩法】从全店动销到打造优势爆款
+抖音如何上热门?这些规则你都了解吗?
+抖音学习:抖音怎么养号?
+抖音新手教程:抖音新手入门教程,抖音零基础教程
+新店运营思路
+【实操解密】手淘首页,女包类目新品14天起爆1w+首页
+淘宝直播,成了灰产的流量新入口?
+短视频月入10000+,一部手机,全靠“复制”
+搜索和首页不可兼得?首页流量=淘宝未来?
+拼多多:TOP级店铺直通车养权重技巧,你学会了吗?
+抖音涨粉技巧之如何引导用户点关注
+抖音橱窗、抖音购物车、抖音小店、抖音直播的区别分析
+【黄金运营玩法】人群规划快速入池的黄金直通车玩法
+秋冬新品“开车必学”,直通车上分逻辑解密!!
+【搜索起爆必杀技】垂直标签定位!稳准狠!!
+他通过抖音月入10万+,是怎么做到的?
+抖音小白如何快速涨粉变现?
+抖音怎么赚钱,抖音有哪些运营技巧,抖音怎么吸粉
+抖音赚钱的30种方法,几乎没有门槛,零粉丝就可以做
+做直播短视频,如何打造个性IP?
+短视频拍摄脚本设计及文案模板!
+抖音上的变现方式都有哪些
+抖音怎么变现?
+超级推荐认知篇
+感恩说直通车:关于直通车排名位置的真实性?
+实操运营15天手淘流量稳涨5000
+淘宝直通车上“关键词10分后降至9分怎么办?”5个问题的答案
+打造爆款前研究好你的真正对手是要点
+淘宝凌晨单是什么意思?
+彻底讲透转化率,不再让流量白白流失
+老司机手把手教你直通车怎么卡位出价和养词
+钻展改版,淘宝首页位置被取消
+短视频运营模式有哪些思路和方法
+短视频干货建立用户期待感!打造千万播放量的核心议题
+完善店铺内功细则,运营少走一倍弯路!
+拼多多-多多搜索智能创意商家最新使用宝典
+拼多多店铺流量下降?感恩提醒你注意“商品清单”
+拼多多运营如何引爆自然流量,优秀的拼多多运营不会说的秘密!(2)
+绝多数人容易忽略的拼多多搜索推广盲区,你一定要知道
+淘宝直通车推广常见工具功能解析——抢位助手
+《感恩说直通车:关于时间折扣的问题解答》
+拼多多活动知多少?新手小白必看知识普及贴
+拼多多运营和淘宝运营的区别是什么?
+超级推荐-手淘猜你喜欢-微详情微详情玩法!
+什么是天猫国际?
+天猫主体变更流程教程?
+直播电商的本质究竟是什么?
+藏在直播带货背后的5宗好生意
+拼多多开店常见的一些疑问解答
+小白想要学电商,能详细说一说流程和具体步骤吗?
+抖音直播上热门机制及上热门技巧
+独立站主流的几大模式
+短视频干货怎样拍出用户共情的内容?
+淘宝选品和货源选择,看这篇就够了
+直播干货带货直播常用话术
+拼多多爆款打造,三个“跟”爆款不成功的原因都在这里了!
+拼多多排查店铺流量滞停5大点!带你精准定位引流突破流量瓶颈
+京东旗舰店和京东自营店有什么区别呢?
+直播干货刺激粉丝打赏的7个大招
+拼多多老司机带你这样进行定价,后续报活动依旧能做到盈利!
+服装直播怎么做的更好?
+淘宝如何补单?适合90%中小卖家的方法奉上
+个人做跨境电商怎么少踩坑?小白必看!
+淘宝店铺人群标签不精准怎么办?转化率低怎么办?
+天猫国际入驻需要什么资料
+天猫店铺主体变更对店铺经营有影响吗?
+“嗜血”灰黑产与抖音们的战争
+淘宝单品运营思路
+抖音上爆火的「美食探店」,有点东西
+打造淘宝爆款的几点认知(一)
+打造淘宝爆款的几点认知(二)
+社区团购,早晚要「割韭菜」?
+打造淘宝爆款的几点认知(三)
+打造淘宝爆款的几点认知(五)
+打造淘宝爆款的几点认知(四)
+打造淘宝爆款的几点认知(六)
+跨境电商2021年个人如何做
+开直通车效果不好,平台会减少流量吗?
+淘宝做站内推广有什么技巧?
+微信和支付宝的下一战,原来在这?
+一度智信拼多多网店如何有效做选择和推广
+一度智信科技拼多多新店引流策略
+中小卖家如何预防淘宝店违规?
+单品被降权后,淘宝老链接和新链接哪个好?
+淘宝商品被监管后会影响店铺权重吗?
+淘宝的付费推广为什么带不动自然流量?
+淘宝交易成功后不计入销量是怎么回事?
+一度智信科技拼多多直通车推广技巧分享
+如何获取免费手淘推荐流量
+淘宝逛逛最新商家权限
+对话「前阿里运营总监」,揭秘运营成长的4个阶段
+一度智信哪些因素影响电商平台商品的点击率
+教你如何选择直通车关键词,使权重飘起来
+新手如何开好直通车?12个核心关键点,你一定要明白
+直通车点击率提升秘籍:4个方法,让你点击率提升3倍!强烈建议收藏
+如何利用直通车找关键词和优化标题?
+教你做好电商销售的几大技巧
+生意参谋实操:如何诊断店铺流量、提升搜索流量
+直通车展现量低的原因是什么?如何提高流量?
+直通车点击花费太高怎么办?教你几个降低PPC的实用技巧
+四川一度智信拼多多商家如何制定价格策略?
+重磅抖音电商大动作,到底什么是“兴趣电商”?
+直通车推广,你适合哪种投放方案?
+阿里国际站可营销访客骤减如何应对?
+淘宝直通车是精准匹配好,还是广泛匹配好
+闲鱼上300块能买到的赫莲娜黑绷带骗局
+新手商家最容易踩的坑拼多多标题优化误区
+一度智信拼多多商家有效稳住流量的技巧
+跨境电商大公司与小公司的差别
+一度智信电商社区团购
+00后这都在淘宝买的啥?看完我人傻了
+不了解!我劝你不要碰亚马逊跨境电商!
+一度智信拼多多商家遭遇恶意买家时如何处理?
+2021年我还能做亚马逊吗?
+一度智信拼多多店铺商品如何做好分类工作
+一度智信科技拼多多商家如何提高商品活动报名成功率?
+一度智信拼多多改销量商家如何实现销量突破
+一度智信兴趣电商成为抖音的新战场新业务
+一度智信拼多多店铺被降权如何补救?
+一度智信拼多多店铺如何做好老客户维护以及营销
+淘宝天猫好中差评,什么样的评价可以处理
+如何提升手淘推荐流量?
+跨境店为什么会差于本土店?
+shopee虾皮模式与玩法
+2021年现在做淘宝还能赚钱吗?
+淘宝“描述或品质不符”违规类型调整及处罚说明
+抖音小店流量从哪来?为何没流量?
+拼多多商家欺诈发货会有什么影响?
+京东店铺如何投放京速推爆款推广?
+京东差评率怎么计算?商品管控规则是什么?
+月薪3W的电商运营必备的规划技能!
+从618最新数据,我发现天猫“有点东西”
+京东风向标改版内容解读及问答
+直通车和手淘搜索有什么联系?如何通过直通车提升手淘搜索流量?
+一度智信:拼多多引流小技巧
+如何做好电商大促活动复盘?
+一度智信拼多多秒杀活动怎么操作
+小白必读淘宝新手开店选品技巧
+一度智信拼多多商家做标题注意事项
+淘宝开店没销量应该怎么办?
+淘宝直通车推广类目受限,怎么解决?
+淘宝新上架的宝贝怎么补单?技巧有哪些?
+直通车拉升自然搜索流量和手淘首页流量的原理
+如何快速批量修改淘宝主图水印?
+如何在微信视频号添加小店商品?
+一度智信拼多多商家商品属性怎么写
+拼多多直播如何创建首单优惠券?
+一度智信:拼多多关键词选词优化方法
+提升淘宝流量有哪些方式方法?
+淘宝店应该怎么开?教你新手开淘宝店怎么操作
+淘宝店铺人群标签乱了怎么办?怎么形成?
+店铺上架新品详细操作流程
+普通人现在做电商还有机会吗
+新手淘宝开店会遇到的误区主要有哪些
+淘宝商家怎么看标品和非标品?操作区别有哪些?
+京东入驻和天猫入驻哪个更难?天猫、京东入驻条件和天猫、京东开店费用大盘点(京东入驻隐藏内幕)
+京东自营开店流程步骤详情大盘点
+为什么你的产品不适合开直通车?
+四步教你直通车选词
+直通车会压制搜索流量吗
+淘宝造物神榜选品的标准是什么?
+淘宝手淘流量分配规则是什么?
+淘宝黑搜S流量6天破万最新玩法
+如何做一个高点击率的主图
+标题怎么做才会有流量
+淘宝客单价和uv值一样吗?两者有什么关联?
+淘宝店铺流量低的原因有哪些
+淘宝怎么看当前类目下热搜词?有什么方法可以看到?
+淘宝新手卖家能参加哪些推广活动
+淘宝特价版运营技巧是什么?怎么运营?
+淘宝新手如何分析竞争对手做好店铺运营
+如何查找淘宝竞争对手的热销词?
+淘宝生意参谋租用多少钱生意参谋租用靠谱吗
+直通车黄金爆权法是什么?直通车黄金爆权法怎么做?
+拼多多运营经验分享
+京东开店和淘宝开店哪个更好?电商行业出现“内卷”?
+拼多多商家服务态度准则解读
+如何判断拼多多店铺有多少自然流量?
+电商做到销量第一真的就那么好?
+新规关于拼多多假货处理规范更新
+干货|从0到1做抖音电商,如何借助「流量玩法」破局?
+标品怎么开车?广泛匹配如何优化关键词?
+拼多多遇到低价竞争的四个应对方法
+拼多多无货源怎么操作?跟一件代发一样吗
+拼多多群买买是什么?
+拼多多店铺取名技巧
+多多打单实操流程,怎么添加设置子账号权限?
+闲谈拼多多平台为什么会纵容偏向这么多的羊毛党
+淘宝转化词在哪里看?转化率是怎么计算的
+拼多多商家如何拍出专业击主图?
+3个方法降低拼多多ocpx的转化出价
+做电商是不是一定要刷单才能做的起来
+2021年淘宝秋新势力周满减玩法
+京东如何给买家推荐个性商品?
+短视频带货选哪个平台?有哪些优劣势
+拼多多直通车优化的七大误区,你知道几个?
+跨境电商亚马逊运营如何防治店铺关联?
+字节跳动内测“抖音拍卖”
+快手商家如何拒绝买家的退款申请?
+适合宝妈、兼职或者副业的一种拼多多玩法,一个月多赚2000元
+淘宝店铺转化低怎么办?如何提升?本文全面解答
+拼多多爆品流量下滑有哪些原因?
+亚马逊爆款打造
+#店铺访客少和不转化该如何操作?#
+如何优化操作直通车点击单价?
+为什么手淘首页流量不稳定?有哪些原因?
+如何快速批量修改淘宝主图水印?
+网易云在闲鱼卖歌单?品牌都上闲鱼找年轻人玩了
+一度智信:拼多多商品评价小技巧
+提升拼多多询单转化的五个要点
+如何在拼多多批发频道选择一件代发?
+一度智信:拼多多商家主图设置方法
+小红书有哪些红线是商家不能违规的
+一度智信拼多多新店运营指南~
+怎么申请拼多多品牌黑标?靠谱吗?
+一度智信:拼多多店铺装修技巧有哪些?
+拼多多商家被同行恶意攻击怎么办?一度智信
+一度智信:拼多多新手小白运营经验分享
+一度智信:拼多多买家投诉物流对商家影响大吗?
+标品最聪明玩法:手淘首页引流+直通车推广+微信后端维护
+拼多多智能词包是什么?智能词包使用操作
+一度智信:拼多多平台海外购怎么入驻?
+【宝贝加权】9种加权模式,让宝贝德高权重
+新手开店运营思路
+淘宝运营-标品就这么玩—带你进入第七层级,日销10w
+做拼多多常见的几个误区,你中了几个
+一度智信:拼多多商家想要闭店怎么操作
+拼多多上架宝贝被驳回再编辑能成功吗?
+【干货】分享12种淘宝店赚钱的方法
+卖家都忽略的店铺优化步骤
+宝贝快速上首页揭秘7天抢排名技巧
+宝贝标题好坏如何判断,优化时间有区分吗?问答
+直通车测款过程
+让你的店铺第一个被买家发现的秘诀!!!
+读懂淘宝赚钱公式,让你接单接到手抽筋
+一度智信拼多多商品怎么提升搜索推广排名
+什么是店铺粉丝淘宝店铺粉丝怎么增加
+如何才能找到价格低廉的货源呢?
+在速卖通开店你需要提前知道的一些问题
+淘宝宝贝关键词优化技巧大攻略
+淘宝宝贝排名规则研究和优化技巧
+淘宝宝贝标题优化推广技巧
+靠这10条发券运营技巧,山西便利店把北上广甩在身后
+一度智信:拼多多商品价格设置多个技巧分享
+天猫代运营公司重磅补贴,免费流量,淘宝双促开始报名!还有两大神秘武器
+提高转化点击率之主图的设计优化
+淘宝新手开店的9大误区
+淘宝运营新手店铺的流量来源
+电商卖家如何利用品牌授权,提升产品利润空间,让运营事半功倍
+拼多多店铺降权多久恢复?一度智信
+淘宝主图优化会影响权重吗?有什么作用?
+想要手淘流量大爆发,那这几点你不能犯错!
+电商中小卖家如何利用直通车走出热卖之路?
+一度智信:拼多多商家想要优化人群定位该怎么做
+淘宝开店名称影响排名吗?影响店铺排名因素有哪些?
+想要转化翻倍?学会利用买家秀玩转手淘!
+新品破零力见效果标题打造方法
+拼多多降权原因有哪些?怎么恢复?
+直通车开启智能V视频怎么样?有何用?
+新人做淘宝,有没有什么小技巧分享一下?
+淘宝拼多多新手开店运营思路
+拼多多平台的推广方式有哪些?一度智信
+做电商卖家需要多少钱?要投入多少可以做好淘宝店?
+拼多多选错了主营类目影响大吗?一度智信
+杭州淘宝代运营天猫代运营公司八年电商一线实战经验,他总结了一套拼多多直通车起爆玩法,5分钟就能上高速!
+优化宝贝降权了?优化中你不能不知道的小技巧
+大学生怎样开淘宝网店?分享下我的做店经历
+一度智信:拼多多对于虚假发货怎么处理?
+详情页到底需要哪些内容?这样做详情页,你的产品会说话
+新手开店必备的淘宝运营工具有哪些?
+直通车推广中关键词维度的推广与ocpx智能推广的前世今生与影响
+拼多多申请品牌疑问解答一度智信
+杭州天猫代运营公司淘宝代运营公司独家解读第13年的天猫双11,有什么变与不变?
+淘宝代运营天猫代运营公司官宣!2021天猫双11作战大图发布
+主图才应个性化,小技巧让你的流量成倍增加
+直通车测款过程是怎么样的?
+拼多多店铺运营工具有哪些?
+拼多多平台的店铺营销方式有哪些?一度智信告诉你
+资深黑车手教你玩转直通车
+怎么降低店铺退货率?
+淘宝黑搜怎么排名到首页的?具体怎么操作?
+【第三方法揭秘】淘宝手淘首页金字塔流量爬升法
+怎么降低淘宝店铺退货率?
+淘宝补单怎么寄快递?有哪些方式?
+一度智信:拼多多新手开店需要知道的哪些事!
+新手如何运营抖音小店无货源?
+拼多多选词技巧有哪些?选词工具大全
+淘宝天猫问大家置顶黑科技
+电商搜索广告召回匹配
+蘑菇街电商搜索架构
+场景电商是什么
+品牌商品与垂直平台和场景电商的关系
+场景电商与品牌
+10年运营老司机:送你一份最接地气的面试攻略!
+10秒将文章发布到13个平台,我找到这款运营神器!
+12位大咖齐聚,700人参会!2018社群运营峰会圆满落幕!
+2016年运营人的48条吐槽合集:总感觉做运营好没存在感!
+2018年运营人必看书单(运营研究社诚意精选)
+2018社群运营峰会参会指南
+2年涨薪超5倍,深扒运营人的涨薪经历
+30分钟获得到运营高手14个月摸索的经验!
+3分钟100亿!「双十一」一场你情我愿的洗脑大戏
+3小时刷爆朋友圈,谷歌AI小程序的运营套路何在?
+7个运营人的真实经历,看完后你还想做运营吗?
+7集音频帮助你从零开始做好内容运营,这应该是运营圈内容最结构化的电台了!
+8位运营实操分享:如何为公众号获取第一批用户?
+「产品菜鸟汇」发的最后一篇文章,是时候说再见了。
+「双十一」专访:即使是CEO,也不过是马云的一个棋子
+「运营人创作大赛」正式启动!免费学习写作技能,还能拿iPhoneX和8888元红包!
+「运营社第七期招募」成为互联网最稀缺的运营!
+【撩运营】什么值得买招运营啦,内容活动商务等岗位均有!
+【运营life】6月我们将远离城市,去追寻隐秘的竹海!
+【运营社·北京】用户增长与个人成长主题线下活动圆满结束
+一个可以让运营快速成长的核心技巧——复盘!
+一款能够帮助运营找到用户最感兴趣内容的工具!
+上海站沙龙报名如何更有效地做好活动运营
+上线啦!一个专属于运营从业者的电台
+为何你听了这么多课程还是做不好运营?
+为何你找不到一份好的运营工作?
+互联网“死亡”名单内涵段子关停,下一个会是抖音吗?
+今天,成为区块链运营研究社的第02批会员
+今天,成为区块链运营研究社的第04期会员
+今天,成为教育运营研究社的第01批会员
+今日头条,是否会败给资讯界的快手?
+今晚直播:企业运营抖音,这里有7条建议!
+从0到12万社群用户,5年运营老司机的实操方法论
+从零开始做好企业级市场运营,分享2B产品的8种获客方法!
+众筹:一场运营人的年终聚会
+你永远叫不醒一位装睡的运营人
+你知道自己的运营能力值多少钱嘛?
+你离高阶运营,就差写好一份项目立项书!
+做了这么久运营,给我带来了什么改变?
+做活动策划时,95%运营都会忽略的1个细节!
+做活动策划时,最容易犯的「致命」错误!
+内容分发新时代!李彦宏也来“教“大家做运营了?
+写在区块链运营研究社第4期会员招募前
+写给运营人的一封情书,陪在你身边的第363天!
+刚刚!运营人创作大赛30强揭晓
+刚刚,我被饿了么“占了便宜”
+升职加薪!运营应该如何写好年终报告
+厉害了!3天落地7个城市的观影活动!
+原创!16款运营专用表情包,帮你撂倒产品和老板
+可恨!公众号新骗术,运营们要注意了!
+和朋友吵架时,我发现了做运营的本质和捷径!
+唯品会副总裁有一种员工,我非常喜欢!
+如何获得创业媒体报道:新产品冷启动捷径!
+如何进入一线互联网企业做运营!
+守寡14年,她靠运营成为陕西首富!
+小程序对运营的7大挑战,标题党将失效!
+岗位推荐▏内容运营、活动策划、新媒体运营...我们一起搞事情!
+带你精读8本运营必备书,和2000运营人一起战胜拖延
+想提升产品日活?4个工具帮助运营做好运维工作!
+我们为运营人单独设计了9款宝贝,不过是限量的哦!
+我们为运营人单独设计了一种笔记本
+我们策划了一场属于运营人的发布会
+我是运营宝宝,我被老板逼着写文章了!
+我暗访了快手上的杀马特,真相令我汗颜
+我采访了5位运营总监,这2种运营他们最想培养
+扎心了!你到现在都不知道“什么是运营”
+抢占最后9个名额,活动策划训练营明天开营!
+推荐!新媒体运营追热点的8种写作姿势
+支付宝「集五福」背后的“小心机”
+支付宝道歉了,值得原谅吗?
+教育运营研究社第01期完整名单出炉!
+新媒体运营是怎么死的?哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
+最后5个名额,社群运营训练营今晚开营!
+最后7个名额!社群运营训练营明天开营!
+最后8个名额!社群运营训练营限时报名
+最后8个名额!社群运营训练营限时报名!
+最后一天,成为区块链运营研究社第03期会员
+杭州站沙龙:从零开始做好内容的运营与变现!
+活动实录│产品菜鸟汇的上海网友见面会
+活动策划需要具备怎样的能力才能拿到高薪?
+活动策划:如何让用户疯狂的买买买
+淘宝网红收入排行榜曝光,「年入百万」除了颜值还靠什么?
+淘汰1400多人后,运营圈的10W+潜力股都在这里了!
+渠道运营:新人如何做好应用商店推广
+独立思考的人怎么过「双十一」
+用户运营实操案例:比发红包效果好1000倍的社群活跃度提升方法!
+用户运营:从零开始做好用户访谈!
+用户运营:通过用户获取用户的5个活动案例
+百度、腾讯、深夜发媸...在线宣讲会,30+高薪运营岗位现场直招!
+碰到别的部门推脱责任,运营该怎么面对黑锅?
+社群数据化:你运营的社群是好社群嘛?
+社群运营如何衡量工作效果?
+社群运营,疯狂拉群有用吗?
+社群运营:留住用户最有效的办法!
+神器推荐!10款小众、好用且高逼格的运营工具!
+穿衣助手COO:互联网下半场更适合运营来主导!
+站内分发篇▏罗辑思维得到APP的内容运营套路
+策划的活动没效果?这份攻略送你!
+线下沙龙报名如何用正确的运营思维做新媒体
+线下活动邀请如何低成本获取前10万用户
+网易刷屏案例暗藏的内容运营技能!
+美版「拼多多」逆天,一年拿下2.4亿美元投资,还好评如潮!
+老板看了都怕!10个常见运营专业面试问题与答题思路!
+致敬!大学毕业就入坑的(蒙逼)运营人
+致敬!那些身价不菲的高龄运营人
+观点:社群效率太低,运营尽快远离!
+让你懵逼的阿里双11,凭什么冲击1500亿?
+评选结果揭晓|她们都是最美的运营女生!
+跳槽特辑运营该如何辨识一家公司是否靠谱?
+跳槽进入新浪微博!这个二线城市的运营小白是怎么做到的?
+运营不是屌丝,我们只是太忙!
+运营人一定要懂活动策划?必须鸭!
+运营人写简历时最容易犯的9个问题!
+运营人年终聚会倒计时,5大爆点即将揭晓!
+运营人的新年礼包获奖名单公布
+运营圆桌那些帮助自己提高运营效率的工具
+运营好物可以给你带来文案灵感的办公用品
+运营好物|据说颜值会决定了日后工资的高低
+运营学习神器,公众号实操技能超全全全全全全全全全全全全全全全全!
+运营应该上的10个免费图片网站,你用过几个?
+运营怎样做到“别错把平台当成你的本事”
+运营想要快速晋升,难倒真的只能靠跳槽了嘛?
+运营成长技能地图!史上最全最长最干最燃最diao,没有之一!
+运营渐入佳境是种怎样的体验?
+运营研究社和深夜发媸,开展了一场运营的“较量”!
+运营研究社第一期线下沙龙|遇见.连接.分享
+运营社上海沙龙:公众号图文的写作与跟热点技巧
+运营社北京沙龙:如何从零做好社区用户运营
+运营社北京:我们的第一场读书会结束啦!
+运营社吐槽大会连简历都不会写,你怎么不上天?
+运营社成都站沙龙:如何打造互联网爆款产品?
+运营社招聘啦!邀你一起成为厉害的运营人!
+运营社深圳沙龙圆满结束:与腾讯、深夜发媸畅谈18年规划
+运营社电台运营如何写好一篇软文?
+运营社电台:产品卖点挖掘与描述写作技巧
+运营试卷出炉!2017普通高等互联网运营从业招生考试
+运营都会关心的10个问题!
+运营锦囊节后找不到工作状态,快来服下解药!
+运营零基础写好软文:用故事引爆用户情绪!
+运费暴涨比顺丰还贵,这样的京东你还买吗?
+这家靠卖会员挣钱的超市,连雷军都向它学运营
+零经验!运营新人如何写好个人简历
+首发第一本区块链运营书籍!
+(活动报名)5位大咖分享:如何在17年做有价值的运营
+1个月将社群转化率提升12%
+400+运营人,200+条干货,你要的运营实操经验都在这里了!
+今年双11,买什么最划算?
+做活动策划时总被老板骂,通常是犯了这些错!
+元旦活动失败了?分享几个活动策划干货给你!
+双11帮你清空购物车,不许拒绝!
+小米在英国“翻车”,国内运营套路在海外惹众怒
+最后11个名额,活动策划训练营明日开营!
+最后9个名额,社群运营训练营明晚开营!
+活动创意越多越好?别傻了!
+活动成本高,是你根本不会用优惠券!
+淘宝为什么要一次性送3张优惠券?
+运营「全栈化」,你准备好了吗
+运营路越走越窄?可能是你文案写不好
+新年礼物:2018运营人年终聚会演讲实录
+最后10个名额,社群运营课程训练营明日开营!
+【运营社广深年终聚会】运营人如何度过资本寒冬
+抖音Out了!今年春节娱乐会被这款爆红App承包吗?
+2019运营加薪神器,限量66份!
+抖音“生儿子”再战微信,社交新品「多闪」能活多久?
+解析阿里ONE商业大会——“商业操作系统”会怎样改变商家企业?
+不到半年吸引20亿入局!扒一扒社区团购的底层运营逻辑
+拼多多被“盗”千万后,我们来聊聊优惠券背后的学问
+2019天猫年货节九大行业数据解读与品牌榜单公布
+企业疯抢的活动策划er长啥样?
+【ECdataway数据控】2019春节电商消费关键词:心想“食“成、”衣“帆风顺、”美“梦成真
+亚马逊跨境电商~时代在变,我们能一成不变么?
+大厂岗位推荐!百度、新世相、优必选、运营研究社在等你!
+欢迎加入运营地图朋友圈大赛!
+手机2018Q4电商数据解读与趋势分析
+看曾最底层员工辞职做跨境如何从3千到月入3w的?
+一场活动带来30万用户,凯叔讲故事的「增长飞轮」值得学习!
+凯叔讲故事运营总监:关于增长和成长的5点建议得学习!
+“六种必备思维”实操应用——小白运营的进阶之路1.0
+教育产品如何做用户需求收集?
+2019你最想提升的运营技能是什么?
+三大跨境电商对比分析,为什么亚马逊卖家能月入百万?
+支付宝花10元买我一张脸,“刷脸支付”背后有何推广套路?
+为什么活动不成功?第1步你就栽了!
+小白找运营工作难吗?难!
+90后广州酒店主管,副业做京东无货源,三个月,月入8W+
+京东无货源为何能快速崛起,揭秘京东店群的相关优势!
+新手开京东店群如何找货源,学会这几点,小白也能做
+湖北破产老板,转做京东无货源东山再起,半年20家店月利润50W+
+文章转化率不足0.1%,该如何自救?
+大厂岗位内推!今日头条、深夜发媸、易观、运营社在等你
+腾讯、深夜发媸、吴晓波频道...这场活动请到了这些公司里最值钱的运营
+数据威2019年618怎么玩?美妆个护母婴行业的电商数据参考一下!
+运营20年“野”史
+京东店群项目如何做到稳定挣钱?“轻”运营“重”盈利?
+京东无货源是什么?为什么朋友圈的人都说暴利,背后隐藏着什么黑幕?
+新手也可以月入上万?京东无货源盈利新模式
+周年庆成都站:用户增长、产品思维、运营技能一网打尽!
+岗位推荐!饿了么、菲蓓尔和运营社在等你!
+这样的社群运营人必然被淘汰,有你吗?
+【收藏】2018年新加坡电子商务消费者购物分析报告0422东亚经济观察
+今年618怎么玩?服饰鞋包运动户外2018市场数据参考一下!
+深扒饿了么和美团外卖会员后,我发现这样用最省钱!
+如何评价抖音另类网红?
+抖音另类网红,用沙雕取悦用户有何下场?
+电商还能这么玩,新手做京东无货源月入5W+是真是假?
+福建大学生做京东店群从兼职到全职,半年4家店,单店首月纯利3W+
+企业千万别做抖音
+开店一周基本上没什么客服是什么情况
+从灰色传销到体面上市社交电商蜕变记
+新手卖家如何把淘宝网店做好?
+快手“李佳琦”一天卖出1.6亿!快手为什么比抖音更能带货?
+(电商老黑)做淘宝的是天使还是魔鬼不然怎么会怎么痛苦
+(电商老黑)淘宝什么叫蓝海产品,依据是什么有什么货源
+(淘淘慧通老黑)淘宝里的那些事
+电商老玩家,剖析京东店群不可避免的坑——如何应对“打假”订单?
+全球电商发展新趋势之一:跨境电商市场蓬勃发展
+17岁辍学打工,21岁创业京东无货源,半年3家店月营业额16w+
+90后卖家,红海类目选品运营京东店群,8家个人店,单月营业额25w+
+标题党进化史
+如何让店铺在一周内单品流量暴增
+两个孩子宝妈操作无货源,4个人七家店,单店营业额3w+
+京东店群软件助力商家决战“618”,京东店群软件好用吗
+(淘淘慧通老黑)做淘宝,为什么你怎么刷都没有流量?
+京东无货源店群如何精细化运营?
+淘宝网店如何迈出第一步?
+实体经济下滑时代,电商作伴好飞翔,冷门项目京东无货源暴利大揭秘
+河北滴滴司机,下手京东店群3个月5w+,单都不接了
+9步运营步骤告诉你,什么才是自媒体运营的工作流程
+自媒体运营攻略之如何做内容规划?
+从不为人知到争先下手,京东无货源到底是靠什么思维来盈利的?
+在外打拼三年,一朝回老家下手京东无货源,6家店月入15W+
+淘宝新手开店做不起来,怎么办
+不用拍摄视频,在抖音大流量里网赚
+抖音短视频上热门的小技巧,学会了增加上热门的几率
+[跨境工具通]一键导入、自由修改的Shopify独立站评论插件AliReviews,你一定要了解
+亚马逊店铺没那么简单但也不难
+[跨境工具通]免费的Shopify独立站安全保护插件MacAfeeSecure,墙裂建议使用!
+[跨境工具通]4.8评分的Shopify独立站留言插件TidioLiveChat,多图详解!
+如何让你店铺新品流量倍增,突破日销百单的秘诀
+胡侃当前格局下的小电商出路
+小红书爆款指南:3个月从0实现月销百万,背后有哪些可复用的秘诀?
+微信“一键屏蔽公众号”功能来了!用户爽了运营慌了?
+心态|写给初涉电商的朋友们
+社交电商平台多了,该怎么选择?
+在抖音刷到100次总裁弃妃后,我发现了沙雕广告让人上头的秘密
+拼多多无货源店群如何运营
+萝莉主播出BUG秒变大妈,直播还藏着哪些乱象?
+运营社3年精品文章合辑155篇硬核干货解决运营90%的问题
+电商多目标优化小结
+以人为本,以社交为核心才是正确的电商模式
+抖音又“杠上”微信,新推群聊功能真的能成吗?
+女装低价引流,多宝贝投产做到4
+快手网红:东北经济“新支柱”?
+腾讯、头条悄悄做的产品,希望你永远用不上
+深扒整容界“小红书”,平台乱象背后有哪些行业内幕?
+3C电子行业跨境电商好做吗?
+新型创业模式的社交电商平台正开展得如火如荼
+刚毕业,做运营,需要学习什么啊?
+数据威2019-618母婴电商行业市场分析
+数据威618服饰鞋包行业市场分析
+数据威618食品饮料行业市场分析
+数据威电商彩片品类趋势分析
+数据威解读618下的护肤产品
+2019CPU电商市场解读:AMD强势崛起或将改变整体市场格局
+2019玩具电商市场现状与趋势分析
+手机新品谁家强?速来看数据威小结
+数据威99大促电商数据盘点
+抖音半年获7亿播放量,丁香医生有哪些可复制的内容方法论?
+教育界“李佳琦”年薪百万,直播卖课套路让人眼红!
+2019家装家饰行业电商分析报告
+数据威:纸尿裤最新线上数据-头部玩家出现负增长,新品牌崛起
+一条推特引发NBA电商市场的重创
+数据威:双11预售DAY2!母婴破千亿
+数据威:高高高!最全天猫美妆双11预售成绩单出炉
+猪肉推动CPI持续走高电商市场表现不明显
+数据威:40个类目!天猫双11预售榜单来了(截至23日)
+数据威:天猫双11预售最新数据,37个母婴品牌销售额过千万
+数据威:天猫双11预售一周最全数据大盘点!
+拼多多狂砸百亿“洗白”,它的羊毛你敢薅吗?
+数据威:截止至28日最新!天猫双十一预售母婴12大类目TOP30品牌
+被腾讯们“借鉴”的ToB企业,千亿美金市值背后有何运营门道?
+双十一拒绝套路!卖出6万份的互联网人“王者装备”直接降价!
+阿里、京东“沉迷”生鲜,滴滴打补贴战……背后有何增长秘密?
+李佳琦们双11“卖命”直播背后,淘宝用了哪些硬招?
+腾讯系三电商联手“围殴”天猫,背后是流量话语权
+23大类目!最新双11预售品牌榜单全网首发(截止5日24点)
+双11为何不直接打5折?阿里88VIP有何套路?……这本月销1万+的日历给你答案
+做电商需要掌握的思维,教你打造爆款产品!
+双十一活动大促前,淘宝新手商家必做的准备工作
+新手做淘宝无货源店铺的致命问题,以及解决方法
+网红带头薅垮农民网店,背后是羊毛党的“吸血”灰产
+天猫京东双11十大行业与品牌榜单盘点
+暴涨228.4%!2019天猫防晒品类数据洞察报告
+运营的2017-2019,这些人掀起了互联网的“小风口”
+拼多多股价暴跌后,为何还要花式求“薅羊毛”?
+电商创业必读丨电商货源大搜罗,你不知道的货源全在这!
+双十一总成交额2684亿,他们是怎么做到的
+电商创业必读丨电商客服必备进阶手册(一)
+电商创业必读丨电商客服必备进阶手册(二)
+靠“盗版”抖音霸榜17天,这款App都有哪些骚操作?
+李佳琦、薇娅背后的男人来了!淘宝直播1天成交200亿背后有何方法论?
+天猫双十二备战宝典:错过了双十一,你还要错过双十二吗?
+小白如何才能开好淘宝店?可以这样做……
+电商是什么
+淘宝未来的发展
+如何把电商做大做强?
+跨境电商
+又一电商平台凉了!曾是国内第三,今市值暴跌百亿腾讯都扶不起
+我如何做跨境电商亏掉2W块:说说小白开始做跨境电商的踩过的坑
+淘宝电商怎么做?
+天猫国际未来的发展
+京东物流和菜鸟物流有什么不一样
+新媒体运营小白的简要了解
+电商新手文章
+【2020年最新】关于Shopify开店,你需要了解的100个问题
+淘宝双十一究竟有哪些优惠力度
+针对国内电商如何能快速提升个人能力?
+[跨境工具通]如何支付Shopify月租、APP使用费等费用呢?
+[跨境工具通]通过添加PCI、SSL图标增加客户信赖感的Shopify插件TRUST教程
+开网店为什么要选择拼多多?
+运营PK美工
+小红书被下架?小红书为什么被下架?
+运营必备的邮件沟通技巧。
+[跨境工具通]什么是Dropshipping?2020年最全教程
+电商人:不死就赢了
+[跨境工具通]2020年最全的Shopify免费工具全收录(89个)
+为什么大部分电商都开始注重线下实体店了?
+电商创业需要具备的资源有哪些?
+谈谈传统企业如何做电商?
+「2019运营人年终聚会」门票最后30张,淘宝直播负责人等9位大佬等你来撩!
+传统企业在转型电商时会遇到哪些困境和怎样才算转型成功呢?
+传统企业如何向电商转型?
+2019运营人年终聚会圆满落幕!
+2020年,你确定还要做运营吗?
+[跨境工具通]自动记录流失客户行为的Shopify插件工具LuckyOrange操作教程
+[跨境工具通]智能推荐关联商品的Shopify插件工具SMARTBundleUpsell全教程
+[跨境工具通]免费!Shopify10款流量推广工具了解一下~
+[跨境工具通]可以拆分过长的Shopify商品描述的插件工具EasyTabs实操教程
+[跨境工具通]8款可以免费使用的ShopifySEO工具了解一下~
+虾皮Shopee开店攻略运营技巧合集
+武汉封城第14天,只有外卖小哥、志愿者们知道的那些事
+疫情爆发下的电商市场,格局将会如何变化?
+10款“抢菜App”最新测评!盒马、叮咚、京东到家谁最好抢、最划算?
+在抖音靠“抄袭”月入10万+,1天狂发300+视频是什么骚操作?
+在线客服对电商来说可有可无吗?
+互联网直播15年:从“卖肉”到卖货的掘金史
+快手主播6小时卖出4亿+,背后的带货套路有多野?
+淘宝代运营靠谱吗?有哪些靠谱的代运营公司?
+亚马逊花式“抄”淘宝作业,商家销售额一夜翻10倍
+开一家淘宝店,没有那么难。
+如何选择跨境电商收款平台
+一直薅一直爽?支付宝祭出黑科技!职业羊毛党哭了!
+罗永浩抖音首播3小时交易总额破1亿,你的店却3天卖不出一件货?
+腾讯5000万美元增持拼多多!2020年拼多多商家怎么挣到钱?
+拼多多包裹量增速达行业4倍率先复苏小白入局还有机会吗?(附详细开店指南)
+近1100万人消费,累积观看人次超1.5亿,农产品直播为何如此火爆
+3月淘宝均DAU超疫前水平,中小企业或可提前布局危机后市场
+淘宝神人发起“武汉人免单专区”,武汉人,你们的消费淘宝免单!
+企业千万别做直播带货
+在快手直播相亲,“200块保证脱单”背后的赚钱套路有多野?
+只要2899?拼多多公布新款iPhoneSE最新补贴价
+在抖音用2万粉丝狂赚100万,这些“羊毛党”的路子有多野?
+在抖音“修复老照片”竟有暴利,0成本「割韭菜」的套路有多野?
+瑞幸、拼多多都在用「企业微信」卖货,背后有何流量新玩法?(二)
+开网店新手最关心的问题之一你们能帮我做什么?
+开网店的一件代发是什么意思?
+残疾人在网上开网店好开吗?面临什么问题
+“狂薅”抖音1000万+粉丝,这些教育号的「卖课」路子有多野?
+做直播带货被“坑”百万!深扒直播4大「割韭菜」套路
+2020年淘宝618报名流程以及招商规则!
+感恩说电商:9个字快速判断你是否合适电商运营
+感恩说电商:电商大环境下的传统营销推广方式之解读
+奶茶界“拼多多”秒杀喜茶,年赚65亿背后有何秘密?
+在微信直播2场卖出8000万+,背后有哪些「带货」新玩法?
+抖音一条视频带货3000万,背后有哪些「可复制」的方法论?
+钻展变成了“超级”钻展
+90后小伙放弃月薪6千的工作,全部积蓄决心电商创业日均2000单
+罗永浩618卖出9300万背后,藏着什么抖音带货“新姿势”?
+淘宝代运营怎么样?如何避免被坑?接上一篇文章继续!
+1688“地摊经济”帮扶计划
+腾讯总监“摆摊”招聘、拼多多补贴“摆摊神车”……大厂追热点有多野?
+薇娅揭秘淘宝直播“新玩法”,背后有什么带货「小风口」?
+1688无货源店群有优势吗
+淘宝“封杀”拼多多员工后,我发现了大厂「互撕」的内幕
+搞色情、割韭菜,闲鱼里的「骗局」又升级了!
+我眼中的无货源店群
+教育界「拼多多」狂赚13亿,它的卖课套路有多野?
+腾讯下场“抢”拼多多生意,这个「亲儿子」打的什么算盘?
+[实操]为什么TikTok在安卓机安装后总是闪退?3点原因帮你解决问题。
+[案例]选对背景音乐最大化TikTok广告转化率!附19年TikTok20首最火音乐
+京东售后真心不如淘宝售后。京东售后真差!
+[分析]不算不知道,一算...分6方面说清楚开个Shopify店铺在29美元基础上到底要花多少钱!
+[案例]视频+图片!一文了解TikTok引流到独立站或落地页的5种方法!
+[跨境工具通]1800+评论、4.8评分的Shopify独立站SEO插件PluginSEO
+[跨境工具通]Shopify卖家应使用的倒计时促销插件CountdownTimerbyPOWr
+[案例]为什么TikTok广告普遍关闭评论区?2个例子看失控的评论区是如何导致TikTok广告翻车的
+[跨境工具通]你该了解的Shopify独立站促销通栏插件QuickAnnouncementBar
+[案例]TikTok发布的视频或广告须注意文化差异,不然免不了一波取关
+[跨境工具通]精致好用又免费的Shopify评论插件Yotpo详细实操教程
+《乘风破浪的姐姐》凭啥能火?深扒爆红综艺的运营套路
+关于淘宝天猫代运营公司行业的分析
+微商「巨头」抢占抖音,一场直播卖2.5亿背后有何猫腻?
+1688无货源开店,如何精细化选品
+[案例]老外喜欢什么样的风景视频?TikTok旅游类账号视频5点建议!
+[案例]品牌商如何利用对比PK的方式在TikTok做宣传?2个案例给您启发
+[案例]TikTok运营者如何利用文化认同感的视频增粉?2个案例
+[案例]如何利用TikTok视频引流到APP?3个视频案例给你些思路!
+[案例]TikTok如何巧妙吸粉?看这位印度小哥的有趣创意!
+[案例]什么是TikTok的ShoutOuts(互推)营销?如何做ShoutOuts?
+淘宝代运营怎么样?如何选择靠谱的代运营公司?
+[案例]别再搬运!分享两个简单可复制的TikTok原创视频思路给你!
+李佳琦薇娅的「真正对手」,商家直播如何“偷偷”带货过亿?
+[工具]TikTok账号起名字有技巧!分享10个命名工具给你!
+[技巧]关于TikTok养号的4点技巧分享给你!切忌一上来就怼视频!
+[技巧]TikTok的Hashtag标签怎么打?“332”方法分享给你!
+“央视315”过后,一些淘宝电商企业将何去何从?
+[案例]什么样的视频最受TikTok用户喜欢?6字口诀送给你!(上)
+[案例]什么样的视频最受TikTok用户喜欢?6字口诀送给你!(下)
+[文案]TikTok视频文案怎么写?你一定要了解的互动式竞猜式文案!
+论:新手开网店,如何去选择适合自己的款?
+奶茶界「拼多多」,秒杀一点点、CoCo背后有何秘密?
+新开一家拼多多店铺,到底应该做什么类目好呢?
+服装行业全年蒸发4000亿,直播带货成经济新风口?
+[Q&A]TikTok每天应该发布多少条视频呢?两点建议。
+第一次开拼多多网店,都需要那些工具呢,店铺周转资金又是多少呢?
+【淘宝必备运营秘籍】告诉你定向引爆手淘搜索的秘密!
+[新手必读]拼多多直播套路——开播一月累计观看45.4万,无名为你解码多多直播套路
+周杰伦快手直播“翻车”,「顶流」为什么也带不动快手?
+[技巧]TikTok提高视频完播率的一个技巧!这可是最关键的引流指标
+淘宝无货源:没资金可以做淘宝吗?
+[技巧]应该在什么时间去发布TikTok视频?一个行之有效的经验分享给你!
+1688店群软件——飞蛾商品
+饿了么「红包改版」被骂惨,到底在搞啥“幺蛾子”?
+[产品]说说近期TikTok广告交互的两个重要更新
+关于TikTok最近的遭遇,张一鸣终于发话了
+先别管TikTok了,抖音「直播带货」也要凉了?
+[案例]TikTok上5个利用文化认同扩大视频传播的例子
+致支付宝、拼多多们:别再喊我种果树了!
+抖音里的沙雕「卖课广告」,为了“套路”你有多拼?
+从抖音火到B站的「沙雕爽文」广告,暗藏暴利产业
+抖音奇妙好物节,电商掘金新机遇来了
+户外包入驻天猫流程及费用有哪些?
+自行车入驻天猫流程及费用有哪些?
+运动包入驻天猫流程及费用有哪些?
+零配件入驻天猫的流程及费用是什么
+DIY想要入驻天猫需要哪些流程及费用?
+体育赛事想要入驻天猫需要哪些流程及费用?
+教育培训入驻天猫流程及费用有哪些?
+本地化生活服务入驻天猫流程及费用有哪些?
+电影想要入驻天猫需要哪些流程及费用?
+装修施工入驻天猫流程及费用有哪些?
+装修监理在入驻天猫流程及费用有哪些?
+装修设计入驻天猫流程及费用有哪些?
+设计服务想要入驻天猫需要哪些流程及费用?
+亚马逊全球收款的优势?为什么选择亚马逊全球收款?
+淘宝运营干货,中小型商家店铺布局,要注意的问题
+2020生活娱乐充值入驻天猫的费用和流程有哪些?
+二手车想要入驻天猫需要哪些流程及费用?
+医疗及健康服务要入驻天猫的费用及流程有哪些?
+影音电器入驻天猫的流程及费用有哪些?
+手表入驻天猫的流程及费用有哪些?
+摩托车想要入驻天猫需要哪些流程及费用?
+摩托车装备想要入驻天猫需要哪些流程及费用?
+摩托车配件想要入驻天猫需要哪些流程及费用?
+整车(经销商)想要入驻天猫需要哪些流程及费用?
+时尚饰品入驻天猫的了流程及费用有什么?
+流行首饰想要入驻天猫流程及费用有什么?
+珠宝入驻天猫需要哪些流程及费用?
+翡翠入驻天猫有什么流程及费用?
+能源出行入驻天猫的流程及费用有哪些?
+钻石入驻天猫的流程及费用有哪些?
+黄金入驻天猫的流程及费用有哪些?
+拼多多新手开店,你100%会遇到的问题!(收藏了)
+亚马逊选品软件AMZScout怎么样?好用吗?
+什么是1688店群?1688店群优势及玩法
+个人护理想要入驻天猫费用和流程是怎样的?
+个人清洁工具想要入驻天猫需要哪些流程及费用?
+保健器材想要入驻天猫的费用及流程有些啥呀?
+卫生巾入驻天猫需要哪些流程及费用?
+卫生纸入驻天猫的话流程及费用有哪些?
+厨房电器入驻天猫的的流程及费用有些什么?
+商业设备入驻天猫的流程及费用需要哪些
+大家电入驻天猫的流程及费用有哪些
+居家日用入驻天猫有哪些流程及费用
+按摩器材要入驻天猫的流程及费用有什么?
+洗护清洁剂入驻天猫的流程及费用有哪些?
+清洗设备入驻天猫需要哪些流程及费用
+食品设备入驻天猫的流程及费用有什么
+香薰想要入驻天猫的话流程及费用有哪些?
+淘宝店群软件——初妆助手
+淘宝代运营靠谱吗?如何选择淘宝代运营?
+淘宝天猫商家开通全国首个运营中心预打造百亿级产业带
+这种直播,将被严肃处理!
+企业别再做抖音了
+抖音新号该怎么运营,教你四大养号技巧和“七大红线”
+2020年新手应该如何更好在淘宝上赚钱
+拼多多百亿补贴被“围剿”200天,要凉了?
+小白如何通过抖音赚钱,抖音小白如何零基础月入过万
+【短视频创作】标题7大雷区,你踩中几个?
+抖音怎么变现?
+想开网店又担心被骗
+【第六层级】玩具店铺如何打造新品
+【直播技巧】李佳琦讲解产品方法论,带好货这么讲就对了
+北京天猫代入驻的条件有哪些?
+南京入驻天猫需要什么流程?
+南京天猫代入驻的费用是多少?
+哈尔滨市代入驻天猫需要哪些流程?
+广州代入驻天猫需要哪些条件?
+成都天猫代入驻的条件有哪些?
+昆明市天猫代入驻的费用是多少?
+杭州代入驻天猫需要哪些流程?
+深圳入驻天猫需要哪些费用?
+深圳天猫入驻的条件有哪些?
+重庆入驻天猫的话要哪些流程?
+青岛入驻天猫需要哪些条件?
+青岛天猫代入驻的费用是多少?
+杭州的淘宝代运营怎么样?怎么找到行业真正专业的代运营?
+五分钟搞懂堂内各渠道主图抓取逻辑
+淘宝代运营可信吗?可靠吗?靠谱吗?
+淘宝网店优惠券怎么设置
+怎么发布自己的产品到淘宝网上卖
+拍抖音短视频怎么拍?拍什么类型的视频?
+拼多多运营如何引爆自然流量,优秀的拼多多运营不会说的秘密!
+比快手还下沉的「二类电商」,有人偷偷月入千万
+【虾皮店群】日常运营思路
+拼多多基础知识看完月销100很轻松
+超全多多进宝玩法附带资源位冲量案例剖析——流量加持的“助推器”!
+京东做起了“传销”?真的假的
+shopee虾皮开店成本分析!首开站点怎么选?哪一个站点好?看完值得收藏
+【老司机看过来】淘宝史上最大的一次改版,怎么样我们才不会掉队而死!!!
+2020年入驻天猫超市的新流程?
+天猫国际入驻要求?
+天猫超市还能入驻吗?
+如何入驻天猫?
+美国跨境电商市场宏观因素分析
+直播刚开始怎么说
+做直播
+抖音小店运营全教程
+抖音快手里的“明星战事”
+新手小白短视频拍摄必备设备清单
+京东入驻多少钱?
+京东入驻需要什么条件?
+天猫主体变更和转让有什么区别?
+天猫入驻哪家好?
+天猫国际入驻添加品牌不通过?
+如何入驻天猫国际?
+抖音入驻个人与企业有什么不同?
+抖音入驻多少钱?
+拼多多店铺起死回生篇-教你如何做到新店快速盘活?死店数据快速提升?
+啥?双11今天开始了?还有两波?
+Facebook广告账号易被封原因及申诉方法
+疫情之后跨境电商及其供应链的发展趋势
+天猫入驻困难怎么办?
+入驻天猫国际需要注意什么?
+直播时代流量至上,留量为王
+拼多多价格定生死!核算成本、掌控利润,告诉你定价诀窍
+优衣库,零售界“拼多多”
+「新手必看」运营资料免费领取
+跨境电商的野蛮发展时代已经过去之后未来的路在何方?
+淘宝做代购好做吗?怎么样?淘宝代购店铺怎么运营推广?
+阿里双11的“艰难”,3723亿成交额也藏不住
+双11的百亿补贴战场,谁赢了?
+什么是wap淘宝访客?淘宝wap流量来源是假流量吗?有什么危害?
+苹果们不应该拒绝拼多多
+淘宝旗舰店的“隐秘生意”,这家公司凭什么年入40亿?
+辛巴卖假燕窝被骂上热搜,这些网红早晚“害死”快手
+新手开店基础篇—开店时你需要准备的事项
+天猫店铺主体变更的要求是有哪些?
+天猫店铺主体变更相关的定义有哪些?
+入驻京东的好处有哪些
+双11复盘
+京东个人入驻可以吗有哪些要求呢
+京东商家入驻要求有哪些
+京东自营入驻的优势有哪些呢
+京东超市入驻需要哪些资质
+2020京东入驻条件及费用?
+2020京东入驻类目有哪些?
+个人京东入驻条件是什么?
+京东个人入驻条件?
+京东入驻多少钱?
+京东入驻流程及费用?
+京东商家入驻多少钱,准备多少钱合适?
+京东自营店铺要如何入驻呢?
+京东商城怎么入驻
+京东商城怎么开店铺多少钱
+京东商城怎么开店铺?
+京东怎么开店
+京东超市和京东自营的区别?
+淘宝开店心得
+抖音上爆火的「美食探店」,有点东西
+京东入驻入口在哪里呢?
+京东入驻流程及费用具体是怎样的?
+京东入驻费用需要多少钱?
+京东入驻资质要求都是什么?
+用「视频号直播」做新品发布,连咖啡的路子有点野
+京东入驻旗舰店需要什么资料?
+京东自营入驻审核就会通过吗?
+家居安装入驻京东的流程有哪些呢
+箱包养护入驻京东需要哪些费用呢
+外国邮票入驻京东需要的费用有哪些?
+2020运营人年终聚会,有点东西
+纪念币入驻京东的流程有哪些
+纪念钞入驻京东的资质要求有哪些
+连体钞入驻京东的流程有哪些
+国库券入驻京东的流程有哪些
+硬币入驻京东需要交纳哪些费用
+金银币入驻京东的资质要求有哪些
+古钱币入驻京东需要的资质有哪些呢
+评级币入驻京东的流程有哪些
+邮资封JF入驻京东的流程有哪些
+快手宣布全员“大小周”,打工人到底有多惨?
+外交封入驻京东的资质有哪些?
+实寄封入驻京东的流程有哪些
+普封PF入驻京东需要多少钱
+贺年片HP入驻京东的流程有哪些
+邮资信卡XK入驻京东的资质有哪些
+风光片FP入驻京东的流程有哪些
+特种片TP入驻京东的流程有哪些
+礼品册入驻京东的流程有哪些
+纪念封入驻京东的资质有哪些
+邮资片JP入驻京东需要多少钱
+风光片YP入驻京东的资质有哪些
+IC卡入驻京东的资质有哪些
+债券入驻京东需要多少钱
+田村卡入驻京东的流程有哪些
+粮票入驻京东需要多少钱
+股票入驻京东的流程有哪些
+印花税票入驻京东的流程有哪些
+彩票入驻京东的资质有哪些
+桌面游戏入驻京东的流程有哪些
+游戏周边入驻京东需要多少钱
+角色扮演入驻京东的资质有哪些
+冒险类游戏入驻京东的流程有哪些?
+动作类游戏入驻京东需要多少钱
+即时战略入驻京东的资质有哪些
+恋爱养成入驻京东的资质有哪些
+策略游戏入驻京东需要多少钱
+体育竞技游戏入驻京东的流程有哪些
+射击游戏入驻京东的资质有哪些
+模拟经营游戏入驻京东需要多少钱
+网络游戏入驻京东的资质有哪些
+赛车游戏入驻京东的流程有哪些
+HIFI发烧碟入驻京东的流程有哪些
+汽车音乐入驻京东需要多少钱
+游戏小说入驻京东的资质有哪些
+游戏攻略入驻京东需要多少钱
+益智休闲入驻京东的流程有哪些
+来了!抖音2020年度报告
+摇滚音乐入驻京东需要多少钱
+歌民乐入驻京东的资质有哪些
+爵士音乐入驻京东需要多少钱
+相声入驻京东的资质有哪些
+蓝调入驻京东的流程有哪些
+影视音乐入驻京东的流程有哪些
+戏曲入驻京东需要多少钱
+曲艺入驻京东的资质有哪些
+有声读物入驻京东的流程有哪些
+音乐教育入驻京东的资质有哪些
+IP定制服务入驻京东需要多少钱
+亲子幼教入驻京东的流程有哪些
+娱乐数字产品入驻京东需要多少钱
+宗教音乐入驻京东的资质有哪些
+庆典音乐入驻京东的流程有哪些
+保养服务入驻京东的资质有哪些
+安装服务入驻京东需要多少钱
+清洗服务入驻京东需要多少钱
+支付宝五福超40万人集齐,就这?
+抖音的“朋友圈”来了?有点东西
+从小白入门电商,成为电商狗,深深感受了电商的艰辛,想个人做点跨境远离职场痛苦,不知跨境如何做起也不知道跨境的局面,各位大佬有没有什么建议
+Keep如何打造爆款健身内容?一套运营模型讲清楚
+快手的这首歌,让我看到了另一种「过年」
+支付宝五福已有2.5亿人集齐,背后有哪些流量新玩法?
+淘宝代运营怎么样?靠谱吗?
+电商平台:猫粮消费市场整合分析
+电商平台汽车脚垫消费市场整合分析
+电商平台:养生消费市场整合分析
+电商平台:收纳消费市场整合分析
+电商平台咖啡消费市场整合分析
+淘宝的逛逛如何申请?如何发布内容?什么是逛逛
+电商平台:卫衣消费市场整合分析
+电商:代餐消费市场整合分析
+电商平台:女包消费市场整合分析
+拼多多代运营靠谱吗?有哪些靠谱的拼多多运营公司?
+电商平台:零食消费市场整合分析
+如何提升淘宝的动销率?来拉动整体的销售额?
+电商平台:生鲜消费市场整合分析
+电商平台:电脑消费市场整合分析
+电商平台:面膜消费市场整合分析
+阿里巴巴代运营靠谱吗?行业人仔细讲解
+电商平台:二次元消费市场整合分析
+一度智信想提高店铺转化率
+京东自营入驻条件有哪些呢小编带您查看市场!
+京东自营店入驻条件有哪些
+京东自营店入驻的步骤有哪些京东自营店入驻步骤详解!
+四川一度智信拼多多商家如何低价获取流量
+京东自营入驻条件有哪些呢
+京东超市入驻条件有哪些呢
+电商平台:五金消费市场整合分析
+电商平台:早教消费市场整合分析
+开网店进货需要注意什么?
+京东入驻需要哪些资质?京东入驻商标没满6个月也可以入驻吗?(附赠京东入驻四月热招类目名单)
+京东商城入驻条件有哪些呢
+京东生鲜入驻条件有哪些呢?
+电商平台:扫地机器人消费市场整合分析
+京东慧采入驻条件有哪些呢
+京东拼购店入驻条件有哪些呢京东入驻指南!
+阿里巴巴国际站的流量,到底是哪里来的?
+电商平台:结婚消费市场整合分析
+新手怎么开网店?开一个网店需要花多少钱
+一度智信拼多多商家需要了解的平台规则
+拼多多品牌资质要怎么申请?如何快速通过?
+淘宝店铺做好这几点,引爆自然流量
+0元“白嫖”海底捞?扒一扒「外卖券公众号」
+一度智信拼多多商家在上新阶段需要掌握的知识点
+如何选择淘宝代运营?什么样的天猫代运营公司才是靠谱的?
+用最少钱的点外卖?扒一扒「暴利」外卖券公众号
+一度智信拼多多近8亿用户快速增长背后主要依靠什么
+代运营公司靠谱吗?来看看行业人的客观讲解吧!
+一度智信拼多多推广怎么收费
+整理了份2021淘宝4月份活动表
+一度智信科技拼多多开网店卖什么好
+如何在拼多多零成本开店?
+拼多多开店前期找代运营靠谱吗?
+拼多多新店前期要怎么做?
+一度智信拼多多店铺客服如何做好售后服务
+一度智信科技拼多多商家如何做好产品布局
+快团团如何设置团起购金额、满减活动?
+亚马逊的两大运营模式区别??新手应该怎么选择?亚马逊费用解析
+又一个天猫商家被骗一万找到我处理
+四川一度智信想找对专业的孵化平台
+阿里「1688」火了,“薅羊毛”比拼多多还香?
+淘宝力推「逛逛」,“内容种草”这么香?
+一度智信私域电商新势力
+一度智信电商成为村民新创收渠道
+“拼多多式”卖酒,这家小酒馆凭什么年入8亿?
+祝贺!四川一度智信电商正式挂牌上市!
+你找的淘宝代运营公司真的靠谱吗?
+直播带货要「变天」?淘宝这次放大招了
+跨境电商之广州服装产业带
+跨境电商之深圳消费电子产业带
+跨境电商之义乌小商品产业带
+一度智信拼多多店铺打破零销量
+一度智信拼多多商家获取自然流量
+一度智信科技拼多多店铺装修、主图设计技巧
+在快手拍「甜宠剧」月入百万?我裂开了
+一度智信腾讯申请注册片多多商标
+一度智信拼多多商家在运营期间如何做好布局、引流
+一度智信拼多多商家如何提升自己的商品排名
+shopee(虾皮)平台的跨境店铺和本土店铺的区别
+淘宝代运营都是怎么收费的?靠谱吗?
+如何判断淘宝天猫代运营公司的实力?看哪些纬度?
+四川一度智信拼多多商家需要注意的运营细节!
+品牌方要不要找代运营?淘宝代运营有哪些优势?
+淘宝代运营靠谱吗?5分钟教你辨别代运营是否靠谱?
+一度智信拼多多店铺如何更好的被顾客记住?
+卧底小红书「种草笔记」产业链:0粉也能接广告,一条500块?
+一度智信拼多多新店铺如何实现从零到一?
+淘宝代运营怎么样?淘宝代运营哪些公司是靠谱的?
+京东商城怎么开店?入驻流程有哪些呢?
+四川一度智信拼多多新手运营思路
+京东工业品入驻自营店怎么入驻呢?
+成人用品京东入驻需要准备哪些资质?
+干货新品牌如何“制霸”5000亿保健市场?收好这份运营方法论!
+本土店铺的优劣势,以及如何避坑拿到最安全的账号!干货满满,记得关注!!
+电商市场:燕麦产品消费数据运营分析
+一度智信科技拼多多新手商家容易出现哪些致命问题
+京东平台入驻费2018是多少呢?
+一度智信拼多多商家如何做到不花钱得到免费流量
+京东自营旗舰店和官方旗舰店有什么区别?京东自营店和官方旗舰店有什么区别?
+「学浪计划」携手抖音,这波“教育补贴”太香了……
+一度智信拼多多商家打造店铺口碑
+京东怎么开网店?开京东网店的步骤有哪些呢?
+一度智信拼多多店铺转化始终上不去必须优化调整!
+京东入驻合同是必须要签的吗?
+拼多多百亿补贴持续加码
+虚假交易降权怎样处理?
+京东自营和京东国际自营有什么区别?
+四川一度智信购物节即将来临
+家具类目商家怎么在京东商城开网店?
+电商市场:四件套产品消费数据运营分析
+一度智信想要拼多多店铺走向不偏差
+家电商家如何在京东商城开网店商家不能忽视这些准备工作!
+抖音小店无货源店群怎么做?详细步骤看这里吧!!!!!
+快团团爆款文案写作技巧
+电商市场:果酱产品消费市场整合分析
+电商市场:空气净化器消费数据运营分析
+拼多多快团团如何进行帮卖?
+电商市场:驱蚊产品消费数据运营分析
+shopee虾皮半成品店铺的成长之路
+电商市场:健身产品消费数据运营分析
+个人做电商?该如何开始????
+美版「拼多多」杀疯了,海外“下沉市场”也这么香?
+京东618突破3400亿元!京东入驻策略在此
+店小鱼电商报【6月18日电商资讯快览】
+京东618落下帷幕,乐器类目成为京东新的热招类目之一?
+店小鱼电商报【6月21日电商资讯快览】
+一度智信:从用户角度对拼多多做解析
+京东个护入驻需要准备的资质有哪些?京东个护火热招商中,有扣点优惠!
+店小鱼电商报【6月22日电商资讯快览】
+店小鱼电商报【6月24日电商资讯快览】
+为什么今年618薇娅、李佳琦直播最低价一样?
+什么是多多买菜?如何成为供应商?
+快手宣布取消“大小周”,怎么又有员工不同意?
+做好这8个技巧,多多买菜开店销量暴增
+电商市场:香水产品消费数据运营分析
+电商市场:厨具产品消费市场运营分析
+抖音平台调整发票管理规范
+一度智信在拼多多打造爆款需要哪些思路
+分享3款拼多多一键搬家上货软件使用教程
+短视频直播带货数据分析工具有哪些?
+宝贝访问量变少,转化率变低的问题出在哪
+淘宝开店找对蓝海类目蓝海词,上架就是爆款
+电商市场:医美产品消费数据运营分析
+电商市场:粉底产品消费数据运营分析
+无货源一件代发打造爆款玩法
+2021京东入驻开店条件及费用标准京东入驻难吗?京东开店需要多少钱?
+微信开店新手必看的工具
+电商市场:瑜伽产品消费数据运营分析
+电商市场:窗帘产品消费数据运营分析
+淘宝开店软件哪个好?有哪些软件比较好用?
+新手开店必备的电商运营工具有哪些?
+京东自营入驻很简单吗?京东自营流量这么大,如何入驻?京东自营开店流程步骤详情。
+电商市场:睡衣产品消费数据运营分析
+比拼多多还香?这家“买票”才能进的超市有多神奇
+这家只有一款产品的公司,凭什么卖出3000亿市值?
+电商运营涨姿势的一篇:如何做好一份行业分析报告
+电商市场:美瞳产品消费数据运营分析「有完整视频」
+淘宝搜索热词排名在哪里怎么找关键词
+京东应该怎么入驻?京东自营怎么入驻?如何跟着京东盘天下货?
+7月中旬起淘宝食品类目新增专属激励活动
+京东订单暂停原因展示功能上线
+王力宏直播刮胡子“卖课”,1小时赚100万真的没啥……
+京东开店要多少钱?京东开店流程有吗?在京东开店如何盈利?为什么选择在京东开店?
+店小鱼电商报【7月15日电商资讯快览】
+怎么开京东店铺?京东开店流程及费用,在京东开店的4大技巧
+“拼多多”式拉新火遍海外,ta凭什么让Facebook都抄作业?
+京东自营入驻美妆个护为什么被拒?京东自营入驻条件详情!京东,来了就要赚!
+电商运营如何提升审美感
+京东主播资质审核条例更新!
+店小鱼电商报【7月23日电商资讯快览】
+0基础新店运营不SD,应该怎么去操作呢?
+京东自营如何入驻?什么是渠道入驻?碰概率入驻?入驻京东自营的你中招了吗?
+京东自营怎样入驻?怎样入驻京东自营,入驻京东自营后,商家就能成为甩手掌柜吗?入驻京东自营的7大理由有哪些?
+抖音新品池准入门槛标准有哪些
+拼多多女装店如何开品牌授权店铺?
+京东开店要求是什么?京东开店技巧大揭秘,在京东轻松开店
+天猫代运营公司:天猫淘宝宣布降费,有商家一年能省几十万
+淘宝代运营真的有靠谱的吗?可信吗?
+如何复制别人的商品到京东?有哪些一键铺货工具?
+北大硕士“直播卖书”,凭什么不到半年赚一个亿?
+不到2w的本金做拼多多,3个月左右是如何做到30w左右月销售额的
+开网店想做纺织类产品如何找货源?
+今早的拼多多数据,小生意不是靠努力就可以的,思路、定位更重要
+淘宝新手商家如何快速批量修改主图水印?
+扬州疫情严峻,仓库货物发不出,导致这几天的运营节奏很乱,行业旺季即将到来,后端却是一团糟糕,单拼多多店铺每天退款利润达1000元
+昨天拼多多利润1100,用这个思路,拼多多一天赚500块并不难,一共7个步骤
+网店仓库管理工具用哪个好?
+商务部公开征求意见:对直播电商平台进行规范
+@知乎,别再给我推「外卖券」了!
+直播又有新玩法?店宝宝直言要等年轻人来造新模式
+新手开店如何操作店铺?
+淘宝逛逛「最新榜单」发布,“内容种草”这么香?
+淘宝平台活动招商一般都考察哪些要素?
+京东店铺如何做运营,提升店铺流量?
+爱店家业务加量不加价,服务升级,店铺运营、品牌建设,商标,解决商家入驻难题!
+抖音公布违规营销相关细则禁止直播中诱导好评返现行为
+拼多多商家取消优惠券详情介绍
+拼多多无货源店铺必备的五类工具推荐
+天猫拟下线《天猫鞋类三包服务规范》
+拼多多店铺装修教程
+店宝宝:小红书打通淘宝外链让中小商家有更多发展机会
+网店不服被投诉售假起诉淘宝平台,店宝宝坦言店主选好货源是关键
+蘑菇街启动主播招募计划前3个月平台渠道费全返
+做电商,攻城略地不易,守城护池更难,执着于技术流的运营思路,终将走不长远
+「血洗小红书」的剧本杀,是怎么让“戏精”们上头的?
+拼多多先用后付的优势是什么?一度智信告诉你
+腾讯又生一电商“亲儿子”,这次打的什么算盘?
+2021年网店创业靠谱吗?店宝宝:电商成为稳就业的重要力量
+拼多多百亿补贴“盯”上图书,这波也太香了
+拼多多店铺主图怎么设计更好?一度智信
+快团团商家入驻流程是什么?
+一度智信:拼多多店铺名称详情介绍!
+活动大促之后如何维护新老用户
+京东11.11多举措助商家“双降双提”,现在入驻时机更好!
+拼多多秒拼模板怎么设置?创建商品需要注意什么?
+梦想是最好的信仰,上海店宝宝全线助力网店创业梦
+京东自营入驻条件有哪些?需要准备哪些资质?
+快手小店将测试新违规管理规则
+杭州天猫代运营公司重大利好!天猫发布10项商家扶持举措助力商家双11
+【干货】新品销量快速破零技巧
+电商全网最全标题组合和标题优化
+拼多多高客单价能不能做,实际数据告诉你
+被消失的利润,免费流量的“陷阱”,中小卖家盈利的一种思路
+不知道入驻京东预算是多少?京东店铺不同预算入驻推荐!
+京东下单订单状态显示异常怎么办?
+淘宝终于要和微信「打通」?这次行业要“变天”了?
+杭州天猫代运营公司双11种草期开始了,中小商家怎么脱颖而出?
+一度智信:拼多多商家如何设置运费模板
+新手商家如何寻找线下货源?淘宝开店线下货源渠道有哪些?
+杭州天猫代运营公司超详细!网商银行助力电商卖家备战双11,资金周转全攻略来了!
+干货!天猫代运营靠谱吗?天猫代运营公司专业可靠的有哪些?
+杭州天猫代运营公司淘宝双11商家实战路径一键全解读
+拼多多商家选品工具推荐
+亚马逊真人测评与自养号怎么区分
+杭州淘宝代运营天猫代运营公司看起来简单,做起来难于上青天!直播带货避坑指南,拿去!
+杭州天猫代运营淘宝代运营公司东莞、慈溪新开业目前这20个城市有了淘宝天猫线下办事处!
+杭州淘宝代运营公司天猫代运营多肉小店年销售额超3800万淘宝直播又捧火了哪些新品类?
+一度智信:拼多多新店入驻流程及爆款经验分享
+如何用淘宝打折工具设置商品折扣活动?
+淘宝天猫大促双十一双十二前最重要得准备工作,商家一定要看到最后,必看!
+电商好做吗?详解淘宝开店流程
+超全抖音运营总攻略(中)——抖音运营推荐算法
+如何做好社群运营
+腾讯直播-直播间网络卡的解决方案
+腾讯直播-关联商品
+2020运营新思路
+全套干货,你要的shopee运营视频我都有,别买了
+拼多多能否对抗京东淘宝
+腾讯直播-禁售类目
+【抖音直播】在抖音直播我们需要准备哪些设备?
+【小白篇】抖音与快手的区别?
+成就爆款的核心点
+腾讯直播-小程序跳转申请
+做好这些让你的产品上架就卖
+爆款直通车关键词操作出价始末【推广系列:四】
+【干货篇】一个人怎么做短视频(1)
+腾讯直播-橱窗功能
+腾讯直播-如何避免直播的人气及交易下降
+【干货篇】抖音热门技巧
+腾讯直播-开通与APP使用易犯错误
+企业微信号公众号视频号直播小程序如何协同作战,做好私域营销?
+感恩说直通车:违规绝不仅仅是降权那么简单
+淘宝不是不让SD吗,为什么商家还在做?
+腾讯直播-橱窗争霸赛战报
+薅企业微信羊毛,发红包加粉?菠菜商家们真的快把企业微信玩坏了!
+感恩说直通车:你家的投产roi好嘛?
+2020年疫情影响,跨境电商不能做的这种阴谋论该消停了。
+虾皮开网店学会这些选品思路,订单立马翻十倍
+感恩说直通车:你的操作思路有问题了
+虾皮开网店从来不做一锤子买卖,这么高的复购率你想要吗?
+感恩说直通车:今年的内容营销你知道吗?
+亚马逊上究竟怎么挣钱?
+【抖音推荐算法】想拥有更多粉丝?关注页和同城页这些工作原理你要知道
+感恩说直通车:直通车常见问题解答
+【抖音推荐算法】抖音搜索算法的工作原理
+感恩说电商:客服通过洞察消费者引领转化
+一夜封号6000,个人微信私域运营大势已去!企业微信或成私域运营最好方向!
+【抖音短视频】如何突破自己的创作瓶颈和内容升级?
+【抖音短视频】如何选择拍摄工具和剪辑软件?
+【抖音大数据】2020年抖音用户画像分析报告
+新手开一家淘宝店需要准备多少资金?
+2020新手如何做电商
+【抖音带货】抖音精选联盟平台规则更新调整,惠及更多的中小商家
+新媒体运营如何进阶?记住这4个方法!
+【抖音小店运营】抖音精选联盟使用说明
+社群运营岗位需求大盘点,带你摸清企业的招聘要求!
+新媒体运营入门,这些点你必须掌握!
+用户运营精细化运营之Push消息推送
+用户运营精细化运营之用户分层
+电商时代已过,新零售正式崛起!
+直播带货为什么越来越受到消费者,尤其新一代年轻消费者的青睐?
+新媒体人必看!头条号百万爆文运营经验分享
+新媒体运营:内容创作者的春天已然来袭,你感受到了吗?
+汽车短视频营销分析
+【抖音直播】直播带来了哪些变革?抖音发布《直播社会价值白皮书》
+推荐收藏!零基础小白快速上手社群运营全攻略
+惊!亚马逊卖家纷纷苦不堪言,原因竟是没有自己的鱼塘
+活动运营≠活动策划,看高阶活动运营人员的能力框架模型
+【抖音报告】抖音企业号发布服装行业白皮书新的增长机会“抖”起来
+电商布局线下,新零售成为赢家
+办了这么多次活动,还是没逃过活动运营的这5个坑?
+如何做一场有效的活动运营?看完这篇文章就学会了
+直播电商——已成为当下最抢手的营销渠道!
+做亚马逊第一步,先把收款搞定
+电商小白的工作经历(一)
+虾皮shopee开网店,你的目的是赚Q让生活更美好,而不是省Q让生活更糟糕
+00后小伙放弃月薪6千的工作,全部积蓄决心淘宝创业日均2000单
+新手卖家怎么在淘宝起步?新手小白,零经验,零基础,想做网店
+拼多多流量少?转化低?学会这些运营知识,让你日销千单!实操教学
+精准定位问题,提升运营能力,拼多多店铺运营问题答疑!小白运营店铺整体思路,看了让你少走弯路少入坑!
+电商小白的经历(二)
+2020年,我只有1万块,能不能做亚马逊?
+新手拼多多开店需要注意的事项,7天销售额4000元的实操经验分享
+别被骗了,虾皮开网店,标准的流水在这,看完你还能被骗吗?
+新手商家做好这一步,快速盈利,【做电商都知道的那点事】实操思维,决定你拼多多店能否做好的命门运营知识
+电商小白的经历(三)
+疫情之下消费习惯大转变,直播带货引领购物狂欢!
+拼多多场景推广操作思路手把手教你实操!
+淘宝逻辑(根据自己小白时迷茫的总结)
+拼多多新店快速升级的必走之路:选品选款、数据积累、爆品塑造,你是如何规划的?大神运营实操记录
+年度618盘点︱这样操作,5天打造百万销量
+拼多多场景推广实操:利用“大曝光”玩法15天流量破万,日销千单,实操玩法,拼多多新手必看!
+淘宝新手卖家想要搞定网店运营这些必须知道
+记录自己字节跳动-电商广告运营的面试(1)
+7人团队的小公司,在抖音上年入千万,如何做到的?
+直播带货我们是如何合作品牌方的?比如361度
+拼多多老客户的价值与维护,新老商家你必须知道的维护秘诀,稳定流量!提高抓化率
+良心整理新品上线销量快速破零的6大技巧,建议收藏!
+跨境电商“加速跑”逆势赋能“稳外贸”
+【运营精华解答】电商做哪个类目有发展前途?
+知识点来了,虾皮shopee平台这些坑,知道了少走很多弯路
+什么是搜索推广?拼多多运营实操,最新极速提升关键词排名技巧!极速打造日销500+的小爆款,新手必看!
+集客魔方:全网炒作直播,那直播的未来发展又是如何?
+拼多多新品如何获得高点击主图,新手商家必学的主图详情五大极致内功玩法,打造日销200单的小爆款!
+集客魔方话直播:央视都在做直播带货助农,意义在哪里?
+拼多多常见付费推广问题答疑(上)拼多多新手开店必看,掌握这些运营知识让你少走弯路!
+总投入不到1万块的新品,能带来多少月利润?
+UT优梯电商学院VIP教程:巧用超级推荐3毛钱日引4000访客
+不管你做不做电商,这36个货源网,你必须得知道
+太不可思议了,原来30元就可以开一个淘宝店铺创业
+淘宝风口浪尖不刷单,月销三百万到月销六百万我经历了什么?
+30元就可以开网店,是真的嘛
+淘宝难做?急于求成的年轻人,放下你的浮躁,淘宝是需要慢慢累积
+新手开店如何选择合适的货源?店铺该怎样定位?
+20年打算开淘宝店的朋友,你必须掌握的技能有哪些!
+淘宝一件代发起家——日销售20000+实操分享我是如何做到的
+淘宝新手开店需了解行业哪些事项
+新手专题丨为什么淘宝店铺做不好?新手卖家需要注意的20点问题(上)
+如何通过1688找到厂家货源“没有中间商赚差价”学会了离成功不远
+比1688还便宜的30个货源网站(值得收藏)
+想开网店,自己没有货源,怎么开始呢
+新手专题丨为什么淘宝店铺做不好?新手卖家需要注意的20点问题(下)
+淘宝开店没有好货源,这些优质的拿货网站你知道嘛
+新手怎么开网店?详细操作步骤!
+如何利用工具挖掘淘宝蓝海词?
+同一条网线开多家店铺会不会涉及重复铺货,影响店铺流量。
+100个问题让你成为电商运营大师
+淘宝新人不知道怎么优化主图?关注我.我教你
+你的亚马逊店铺第一个订单是什么?一起聊聊吧!
+电商、疫情双重打击,实体商家凭借微信端腾讯直播带货强势出圈
+淘宝新手不会优化主图怎么办?(2)
+安全补单必备补量工具?如何利用升流量补充店铺访客?
+深度解析多方面维护老客户,快速提升店铺流量
+深度解析多方面维护老客户,快速提升店铺流量2
+0基础抖音直播带货第7天,单场销售额11.5万;他是怎么做到的?
+继北美站之后,亚马逊日本欧洲发货限制入仓,卖家们准备好了吗?
+教你提升店铺销售额!
+淘宝卖家为什么会被投诉?新手卖家必知的几种投诉类型
+运营技巧:新账号如何获取第一批用户?
+我做了5年野生运营后,我用自身的经历给各位的忠告(一)
+个人经历:上班族白领兼职开网店月入六千!
+中小卖家需要开通7天无理由吗?利弊有哪些?
+新手卖家如何寻找货源?有哪些注意事项
+虚假交易对店铺有什么影响?
+抖音号怎么运营,如何运营抖音号?
+抖音大咖运营技巧及实操方案分享!
+抖音怎么养号,抖音如何快速养号?
+抖音网红运营指南(建议收藏)
+新媒体运营之抖音运营机制
+亚马逊常见24个错误代码及部分处理方式,你都知道吗?
+抖音dou+怎么投放效果比较好?
+抖音4大变现方式,及所需要的条件
+抖音怎么变现,抖音如何快速变现?
+新开淘宝店做不起来,怎么办?
+淘宝流量下降原因是什么?有哪些因素?
+亚马逊品牌Brand要求,没有品牌的卖家又该怎么上传呢?
+亚马逊关联后果与防关联对策
+做网店找代运营公司怎么样?
+返校季商机全面来袭,新手现在入驻亚马逊还算晚吗?
+ERP系统绑定亚马逊店铺会导致关联吗?
+淘宝提示店铺违规:不当使用他人权利”指的是什么?
+淘宝“一件代发”操作教程,学会这个轻松实现零投入淘宝创业
+快手怎么运营,快手如何快速增涨粉丝?
+抖音快手短视频制作流程!
+抖音运营技巧与操作步骤!
+淘宝直播怎么玩,如何玩转淘宝直播!
+淘宝被判虚假交易降权了怎么办?怎么申诉?
+亚马逊北美站突现大批账号面临二审,各位卖家怎么办?
+天猫双11要改革了:升级为购物狂欢季
+阿里巴巴首个商家运营中心落户金华
+是啥影响了你的转化率呢?
+如何提升店铺权重?新手开店提升权重小技巧
+如何理解淘宝的月销量?多久清零?
+淘宝老店新开应该怎么做?对于老店新开的一些建议
+淘宝该如何去运营
+别再被网上不当言论蒙蔽,虾皮开店首开站点怎么选?开店成本多少?
+淘宝新手开店运营在线课程基础教程
+抖音机制四大点
+淘宝上线“造物节之城”新页面:首次搬到线上
+仅1天,腾讯看点直播疯抢狂欢夜总下单金额超1.05亿元
+b2b网上商城开发的成本受哪些因素影响?
+抖音创作注重技巧和注意事项以及发布
+抖音短视频创作技巧和注意事项
+淘客如何将抖音粉丝引流到微信?
+虾皮开店必备资料及申请店铺,再发最后一篇食言是狗(新手进)
+百万人在淘宝“求复合”,店宝宝:电商情感产业带内容为王
+聚划算启动最大规模商家扶持计划——“聚风行动”
+新店怎么做淘宝客户运营?
+淘宝新手卖家怎么维护新老客户?
+美业服务平台河狸家获得阿里战略投资
+比1688还便宜的6个货源平台,值得做电商卖家收藏
+2020年亚马逊全球开店注册流程及费用,最新北美站自注册入驻教程
+做到这几点,让你抖音短视频轻松上热门!
+抖音短视频运营全攻略:百万达人的抖音短视频运营方案分享!
+自媒体运营人员必备手册20位内容博主经验
+代运营公司靠不靠谱,为什么不自己开店?
+抖音怎么变现?7种变现模式!
+拼多多活动难上?三招教你活动布局技巧!日销千单不是梦!
+抖音涨粉技巧如何引导用户点关注
+新手开店必知影响宝贝排名的因素有哪些?
+淘宝标题关键词怎么设置,如何优化?
+我拆解了1000条爆款视频,发现了抖音爆款的秘诀
+亚马逊自发货是否有机会争取更多流量?卖家应该怎么做?
+新手卖家怎么发布洋淘买家秀?
+淘宝重复铺货是什么?对店铺有什么影响
+如何改造市场爆款
+阿里妈妈(淘宝联盟、团长)异军突起!!!
+全店产品定价布局策略
+11.11实操三部曲,为双十一爆发做准备!
+论基础SEO的重要性,以及优化技巧!
+微淘的征集活动是什么淘宝商家如何设置征集活动
+手淘洋淘秀对买家有啥好处?怎么让买家参与洋淘秀?
+玺赢电商会-每日电商资讯
+新手开淘宝店流程
+店铺运营最重要的三点运营思路
+店铺运营必知的40个小技巧
+b2b电子商务平台怎么做推广?
+在京东,你的商品标题起对了吗?
+不懂直通车顶层设计,还敢说会开车?
+亚马逊自发货的正确打开方式,你用的哪一种?
+2020年做抖音,选什么领域最赚钱?分享一点实操干货
+短视频必备!4款免费剪辑APP!字幕、滤镜、转场、视频转动图,统统能搞定!
+手淘首页即将改版,短视频不是假趋势而是真现实!
+赶走跟卖的9种绝佳方式,你都试过哪一种?(亚马逊精品和自发货皆可参考)
+淘宝新手开店如何正确选品?
+1688工业品牵手天猫母婴,助推中小品牌打造10000款新品
+如何制作优秀的电商短视频?短视频制作有哪些类型?
+淘宝店铺视频Tab如何开通?
+解读超级推荐是什么?应该怎么操作呢?
+超级推荐是什么?怎么玩才能提升猜你喜欢流量?
+小白想做虾皮网店,一定看完我这篇文章,避免被培训机构割韭菜
+10万亿电商市场,下一个增长点在哪里?WISE2020x电商产业新生态峰会
+精细化标题入手,驱动细分市场下的搜索流量增长
+【干货】双十一快到了,如何找出一张高点击的图?
+为何实体零售被电商暴打?
+店铺诊断大纲,标题引爆搜索流量
+【电商干货】如何通过DMP圈定产品转化周期
+宝贝关键词如何展示在淘宝首页搜索下拉框
+淘宝标题怎么做,关键词优化有哪些技巧?
+淘宝起标题有哪些注意事项,需要遵循哪些原则?
+年轻人“自我优化”首选淘宝,成人教育每月收获100%增长
+疫情给医药电商怎样的发展机遇?
+阿里搜索及优化的规则相关
+自发货店群卖家期待已久的亚马逊2021年招商会,真相“细思极恐”!
+很多想开店的找不到优质货源怎么办?
+中小卖家必看:从无到有的全盘运营操作!
+【电商干货】快车关键词的常用玩法
+【电商干货】推广计划如何进行优化?
+纯电商时代已经结束,多样化电商形式开始
+提高店铺转化率的方法
+【快车干货】京东快车——购物触点的玩法
+如何通过修改标题提高搜索流量?
+淘宝开店标题关键词组合常见问题汇总
+【京东干货】提高快车ROI,其实很简单!
+【海投干货】小海投大奥秘—海投的优化思路
+PrimeDay来临,亚马逊自发货卖家的战场是在欧洲站还是北美站?
+菜鸟到总监——电商运营职业路径解析
+高转化商品标题优化秘籍
+精细化标题入手,驱动细分市场下的搜索流量增长
+如何思考做一个直播电商上市公司计划?(实践者思考)
+拼多多爆款选品打标,运营大神手把手教实操,打造日销五百+爆款!
+新手开店遇到买家恶意行为如何应对?
+新手必看,淘宝新品上架注意事项有哪些?
+【新手必看】拼多多罚款规则解读
+淘宝上下架规则是什么?
+写好拼多多店铺简介,这5点,你做到了吗?
+抖音限流了怎么办?小新老师告诉你呀
+淘宝店收藏加购优惠券是怎么设置的
+短视频如何定位?应该怎样去定位?
+拼多多爆款升级—做第一个吃螃蟹的人(帝王蟹)
+抖音运营从01账号定位内容定位爆款内容账号搭建(新手进)
+如何看待短视频运营的前景?
+这家店到底怎么了,居然让我们运营老师摇头叹气
+短视频运营标签混乱了怎么办?如何恢复账号的标签?
+双十一蓄水期,商家应该做什么
+拼多多爆款实操:利用活动打造爆款,获取首页大额流量,操作7天,日销1000+单!
+0-1抖音电商号实践(定位,涨粉阶段,测试计划,人员组建与需求)
+抖音养号技巧有哪些?2020年最新抖音养号攻略
+马上来临的预售期,商家能做什么?
+(纯干货分享)信息流小白如何対账户数据进行分析及优化
+虾皮做店干货,新手卖家想挣钱就过来看,包含选品思路
+拼多多网店评价被过滤?推荐几个出评渠道,适合资金少的卖家
+直播卖货8个大步骤,35个小技巧
+看过来,看过来,今腾运营的一天
+直通车老是亏钱?7年老卖家分享网店低价高产出技巧,值得推荐
+抖音互关互粉对账号有影响吗?有什么影响?
+用手机怎么开网店?开网店的详细步骤
+90后小伙创业,找到蓝海的产品一天出了267单,分享心得思路
+抖音官方算法大揭秘,看看你抖音号权重在第几个等级?
+分享8个比1688更便宜的批发网站,淘宝拼多多都适用,收藏
+做直播需要什么设备?如何搭建自己的直播间?新人直播必看
+抖音如何分析同行大V账号?应该怎样去剥析?
+你在抖音经常刷到的影视剪辑,背后藏着的是一个赚钱的副业
+企业如何做好短视频运营呢?应该怎么做呢?
+双十一,京东商家必须了解的优惠类型
+研究了1000个抖音爆款视频,我发现爆款短视频都有这8个共同点
+抖音短视频运营怎么做?应该怎么做?
+电商新规即将落地:“二选一”将成为历史?
+刷了100万条抖音视频,总结出取标题5大技巧40个模板
+抖音橱窗、抖音小店、抖音直播开通与变现
+做个有人情味的商家
+抖音运营方法论:3大准则和6大定位心法
+藏在数据后面的抖音运营法则(上)
+标题是怎么引入精准流量的?
+新手做网店不求人,学会看这6个数据,你也是大佬
+你平时在抖音中看到的影视剧片段的,背后藏着的是,赚钱的副业
+2分钟带您了解什么是抖上榜平台
+中国电信安徽5G套餐体验活动每月有100GB流量
+藏在数据后面的抖音运营法则(下)
+新手直播应该注意那些事项?
+木秀于林风必摧之,恶心不死我,会让我更加坚定信仰(虾皮学习不想当韭菜的进)
+双11专场期,能为双11爆发再做些什么?
+用刷抖音的时间来玩抖音,也能月赚几千块,抖音赚钱小技巧
+抖音小店的成立和发展
+解读1688最新搜索规则:
+小轩说:抖音影视剪辑教程,账号相关问题及领域选择
+2020抖音企业号的发展新机遇
+《抖音限流降权违规词手册》
+小轩说:抖音影视剪辑教程,影视剪辑操作和思维
+抖音账号的日常运营
+抖音企业号的认证
+我用feed流投直播间一晚烧了100万销售一个亿
+2020直播元年中的MCN机构怎么样了
+小轩说:抖音影视剪辑教程,一个爆款视频需要具备的因素
+(半干半湿)简单聊聊快手信息流投放的那些事
+想要通过直播挣钱,我们该做些什么?
+抖音电商的干货哦
+淘宝的转化率看哪里?我们怎么提高优化
+抖音信息流广告怎么投放?从开通到投放详细攻略!
+小轩说:抖音影视剪辑教程,抖音混剪影视账号如何变现?
+淘宝卖家一定运费是如何计算的?一定要知道这规则
+抖音视频播放量低、没推荐,原来是这样来的?
+晨轩说:抖音影视剪辑教程,抖音新号一个月做到万粉的心得
+打造抖音网红IP,不要忽略账号装修这个细节!
+抖音带货:到底有多赚
+什么叫抖音feed流?到底怎么玩?
+淘宝新品直通车怎么开才有展现量?具体该怎么做?
+抖音直播留人技巧分享
+晨轩说:抖音影视剪辑教程,做影视剪辑常见的五个问题
+直播or短视频带货?
+微信视频号如何运营?视频号如何涨粉?如何冷启动?
+4982亿!22.5亿单!玺赢电商丨带你一起回顾历年双十一数据
+抖音小店最高销售额4.8亿,双11数据来了!你的小店在第几重?
+假如,淘宝被封店会冻结支付宝吗保证金还可以退回来吗?
+抖音带货六大方向干货分享
+双11中的产业:天猫集中爆发。
+抖音运营必知的几大坑,新手做抖音运营需要注意什么?
+晨轩说:抖音影视剪辑教程,如何避免搬运排查?
+翻车!明星直播数据造假被锤!带货还有其他可行方式?
+如何维护淘宝客除了要对淘宝客维护,淘宝客活动同样需要维护。
+一大波新品牌在抖音崛起,你也可以把握住这个机会
+思考与招商:分享3种类型的公司布局直播应该有的规划
+晨轩说:抖音影视剪辑教程,分类领域和后续变现发展问题
+(连载)抖音feed计划如何快速定位精准流量人群包
+企业营销:结合现有的短视频平台做抖品牌或者快品牌(案例分析)
+在抖音上做好物推荐,拍一个视频收益几百,详细操作讲解
+晨轩说:抖音影视剪辑教程,抖音的搬运稽查以及推荐机制
+(连载)如何利用feed流给0粉直播间强打标签
+天猫2021年度商家续签公告:续签规则是什么
+(连载)价值1W块的抖音直播带货话术脚本免费分享
+淘宝店被投诉了影响有多严重会被罚掉多少分
+双十一后,我们要怎么在不影响风向标的情况下应对“恶意退换货”?
+晨轩说:抖音影视剪辑教程,提升视频播放量的五大因素
+(干货)这几个直播间feed投放常见的小问题你知道吗?
+抖音小白必备的养号技巧(不看后悔系列)
+你一定不知道!抖音疯产姐妹为什么突然就火了?
+店铺布局不能一直想着爆款,商品怎么搭配才赚钱
+看了500个抖音成功案例,发现能赚钱的号都做好了这6步
+淘宝开店必须满足什么条件?淘宝开店具体流程
+直通车可以带搜索,超推:不好意思我可以爆首页
+商品标签一体化之后,对我们的商家有哪些好处?
+淘宝超级推荐与直通车的区别有哪些?
+超级推荐投放渠道有哪些?
+买家卖家双方纠纷淘宝介入后谁的赢面大
+全职妈妈开网店怎么做?淘宝店铺如何运营?
+淘宝信誉度等级划分标准是什么?
+抖音小白如何进行内容创作?教你轻松做出爆款视频!
+淘宝开店如何控制成本?
+淘宝运营必须具备的十大基础
+怎么样可以快速提高淘宝的曝光指数和曝光率?
+商家在后台该如何设置合适的商品标签
+晨轩说:抖音影视剪辑教程,抖音如何养号提高权重?
+(干货)直播feed流账户投放应该搭建多少条计划?
+客服咨询转化率全攻略
+厉害了!抖音上这位网红帅哥,用一条领带制造爆款,一周涨粉超百万!
+干货满满抖音达人必备的短视频拍摄技巧!
+抖上榜企业蓝V榜,揭秘蓝V品牌营销价值,助您掌握抖音蓝V动态
+走红抖音的大LOGO吃垮北京,是“吃垮北京”?还是“吃垮自己”?
+淘宝产品升级!逛逛上线,微淘变“订阅”,生意新机会来了~
+淘宝违规被降权怎么办
+直播营销兴起,品牌方创意传播给我的启发
+晨轩说:抖音影视剪辑教程,抖音影视剪辑的大体流程分享
+关于淘宝店铺降权问题
+关于双十二期间店铺活动的策划需要怎么做?
+通过做抖音影视剪辑,我一个月赚了10000,小白影视剪辑入门技巧
+电商答疑小课堂,上分?卡价格带?人群?权重?高点击率图?溢价?拉爆款?直通车?
+亚马逊全球开店美国站点上线测试题
+淘宝运营思路
+淘宝改版?微淘变“订阅”,逛逛上线,在2020的尾巴抓住新机遇?
+所有商家跟我合作之前,看一下这篇文章,再联系我
+为什么淘宝店没流量?影响淘宝宝贝标题权重的因素是什么?
+现在淘宝开店还能赚钱吗?现在开店好做吗?
+淘宝店铺被扣分了还能报名双十二活动吗
+骚扰他人,后果很严重!快看看你有没有无意间违规呢?
+晨轩说:抖音影视剪辑教程,如何利用bgm让视频上热门?
+(干货)抖音feed流账户消费少?点击低?成本高?投放问题详解
+双十二拼多多会降价吗有哪些优惠活动
+商家售后有哪些变化,还不来看看!
+抖音直播间feed流110的计划都是怎么建的?
+带货直播都在投的feed流,你知道怎么玩吗?
+粉丝1000万+!看看抖音号“潘姥姥”做了什么?
+因刷单导致淘宝宝贝被降权该怎么处理
+宝妈适合开淘宝店吗?如何提高网店销量?
+现在开网店还赚钱吗?淘宝开店初期怎么赚钱?
+生意参谋数据分析入门
+农村淘宝是什么和淘宝有什么区别
+上班族开网店需要准备什么?要注意哪些方面?
+电商的CRM常用名词解释,CRM必备技能
+被资本重拾的代运营商,降低成本做“减法”,让你当上甩手掌柜!
+【干货】新手小白不要怕!老司机带你一步一步解读直通车公式,帮助你快速搭建电商底层思维
+专门骗淘宝新手的店铺出售转让骗局这几点千万要注意
+上班族如何成功经营一家网店?
+上班族开网店应该怎样进行淘宝推广?
+为什么宝贝排名突然严重下降?有什么办法解决?
+宝妈开网店怎么做店铺推广?
+新开的淘宝店没有生意怎么办?新品如何推广?
+淘宝宝贝上架周期是多久?最佳上架的时间是什么时候?
+淘宝新手卖家都会犯的5大错误(三)
+淘宝新手卖家都会犯的5大错误(五)
+淘宝新手卖家都会犯的5大错误(四)
+淘宝严重违规导致被封店后还能重开店铺吗
+只要做好这些推广,淘宝开店月入过万不再是梦!
+淘宝新店如何提升权重?新店加权技巧
+淘宝访客忽然下降一半怎么办?
+从c级店铺逆袭成为a+店铺,我们都做了哪些努力
+淘宝直播刷流量有风险吗
+全职妈妈开网店怎么做?新店没有流量怎么办?
+几个小技巧教你提升淘宝店铺的转化率
+如何提升淘宝店访客量和流量?
+手机淘宝推广的方法有哪些?
+淘宝开店前期怎么引流?怎么做推广?
+淘宝猜你喜欢流量起不来是怎么回事?
+99%的抖音人都不会蹭热点
+直播间、短视频加热神器:DOU+到底怎么投?
+直通车带动自然搜索流量解析与注意事项
+如何在三周内提升淘宝新品的搜索排名?
+如何提升淘宝店的转化率?
+宝妈开网店没生意该怎么办?
+淘宝开店不要盲目打价格战,转化靠精准流量!
+淘宝开店如何才能获取并提高手淘自然流量?
+2021年【京东年货节】报名进行中,你还没参加?
+双十二促销生“钝感”,中小商家陪跑,丁真同款成热词?
+央视点评知名主播卖假燕窝事件丨淘宝;买家秀社区升级为“逛逛”,“微淘”升级为“订阅”
+淘宝卖家应该怎么做内容营销?深度解析
+现在做淘宝直播是不是太晚了?还来得及吗?
+2021年京东商家续签考核七问
+如何提前预防中差评对店铺的影响
+高通骁龙888平台的魅族新品将于2021年春季与大家见面
+为什么抖音账号会被限流?限流了应该怎么办?
+2021年如何开淘宝店?开网店有哪些技巧?
+如何提高淘宝搜索排名?这几个技巧得知道!
+开淘宝店如何提高转化率?店铺标签要把握好
+淘宝关键词如何优化维护?技巧分享
+淘宝如何解决宝贝综合排名获取免费自然流量?
+淘宝店转化率下降了该怎么办?
+淘宝开店如何制作精美的详情页?
+淘宝微淘怎么做效果好?做微淘的技巧
+拼多多运营推广技巧有哪些?学会这些不再愁
+“能不能别让这个账号在我店铺下单了!”一个小技巧帮你阻挡恶意攻击!
+淘宝店铺权重是什么?如何谨防被降权?
+如何利用淘宝主图视频提升店铺转化?
+如何合理安排淘宝店铺的宝贝上下架时间?
+新手开淘宝店需要学习哪些经验?
+淘宝店流量又下降了,是什么原因?如何解决?
+淘宝新品上架如何快速抢占手淘首页?
+淘宝频繁修改关键词会被降权吗?怎样提升权重?
+必须看!抖上榜带您选对抖音热门音乐,助力视频冲上榜单!
+注意!你不得不了解的抖音短视频变现模式!
+拼多多如何设计高点击率主图
+全职妈妈适合开网店吗?开网店需要做哪些准备?
+双十二期间,淘宝店铺如何提升转化率?
+淘宝卖家如何提炼产品卖点?
+淘宝客服有哪些技巧?客服有什么作用?
+淘宝店铺如何推广和运营?
+淘宝开店运营要避开哪些“坑”?
+淘宝新开的店铺应该避免卖哪几类商品?
+淘宝网店怎么做好内部基础优化?
+淘宝隐形降权是什么?如何查看是否被隐形降权?
+淘宝新手怎么看店铺有没有流量和转化
+店铺违规扣分降权?拿什么让你的店铺“起死回生”!
+解读电商“权重”问题,销售渠道与人气分排序
+打造销售主力款引流的四个步骤丨淘宝补好排名
+完美解决处理刷手恶意退款丨淘宝年货节开始了有哪些玩法
+淘宝客服推销技巧有哪些——中小卖家如何实现日出千单?手把手教你打造平台爆款产品
+2020年短视频用户价值研究报告
+淘宝销量是实时更新吗?怎么提高销量。
+新店铺如何推广新品,打造爆款?
+揭秘!人人都有的黄金标题怎么做!
+抖音账号怎样搭建?应该怎么做?
+提高3倍点击率的优化笔记
+抖音短视频带货账号定位
+现在做抖音短视频还赚钱吗?
+淘宝直播:直播+短视频,内容电商的下一站
+虾皮开店掏心掏肺的说,没听进去被割了韭菜,如何自救?
+一招教你判断店铺人群准不准
+【干货】影响主图点击率的6大核心因素!
+淘宝免费流量入口,商家应该如何把握?淘宝如何置顶好评
+短视频时代,还是内容为王吗?
+如何利用亚马逊QA,提高转化率?
+2021新手做电商有哪些机会?
+干货!2021年电商运营人必备的30多款工具软件(需要的珍藏!)
+0成本如何在咸鱼赚钱
+抖音如何快速上热门、涨粉?
+精细化运营需要哪些标题优化方案?
+99%电商文案都在用的超实用法则!(一)
+手淘猜你喜欢升级,微详情资源位有何特点?
+抖音不为人知的暴力赚钱
+所有电商人注意了!税务总局出大招了!
+重要!2021做亚马逊要注意这5大趋势!
+抖音短视频标题这样写,分分钟打造爆款!
+99%电商文案都在用的超实用法则!(三)
+99%电商文案都在用的超实用法则!(二)
+商家被罚130万,是因为触犯了什么?
+抖音不为人知的副业赚钱项目
+淘宝企业店:一分钟带你了解营业执照和电子营业执照
+为什么生意参谋后台显示的访客比直通车点击量少很多?
+淘宝直通车怎么开?2021年新版淘宝直通车跟之前有什么变化?怎样开淘宝直通车?
+爆款打造七步流程法
+做淘宝一定要会开淘宝直通车吗?是不是做淘宝一定要做直通车?
+做淘宝直通车需要多少钱?淘宝直通车推广最低每天开多少钱?
+感觉淘宝直通车没什么用!淘宝直通车没效果怎么办?
+手淘改版后如何科学的测款
+直通车关键词选取数据该怎么把控,看这里!!
+作为一名运营,值得你一看(下)
+快手运营秘籍小白篇(深度好文)
+疫情期间,发货地在疫情影响区怎么办?京喜商家必看
+确定不想知道直通车创意质量和买家体验的提升吗?进来看看!
+进来看看你经常犯的直通车人群溢价和出价的问题吧!
+进来看看!直通车质量分调整,相关性问题。
+靠谱运营是怎么解决滞销商品的!
+关于天猫入驻你所要需要知道的所有事!
+晨轩说:抖音影视剪辑玩法解析,抖音影视剪辑赚取的方式
+搞定这3件事,就没有做不好的直播带货!
+透过1300个增粉最快的服装账号,我们总结出了这些打造爆款的方法!
+奇怪!某直通车关键词都前三了,但是居然没展现量?
+来看看吧!直通车烧钱太快处理方法。
+来看看投产差的时候怎么开直通车!
+来看看!直通车ppc越高,投产也高,这样无法降ppc了?
+直通车怎么调整?不进来看看?
+不同时期的拼多多关键词优化技巧,助你排名更稳定!
+成本低,曝光高的拼多多直通车你值得拥有~
+抖音完播率跟这个词相比,不值一提
+应季产品如何做好春款布局?
+应季产品如何做好春款布局?(二)
+新手须知,电商运营的核心是什么?
+淘宝店运营过程中常见问题汇总(一)
+淘宝店运营过程中常见问题汇总(二)
+淘宝新手卖家如何选款?
+一个身份证可以开几个淘宝店?
+年货节商家避坑指南之价格违规
+淘宝上下架时间卡位,这些技巧你懂了吗?
+拼多多推广效果不好,为什么?
+改版后的淘宝流量越来越少是什么原因呢?
+为什么只有你的短视频播放量那么低?
+京东商家避坑指南之更换商品
+抖音直播释放新信号,服装号玩法抢先看
+小红书笔记为什么被限流?
+记录产品运营项目搭建的全过程-1
+用这个方法直播带货,不愁你的直播间没人气
+你不会还认为短视频没有脚本吧?
+从普通农民到700w+粉丝抖音网红,这对夫妻究竟用了什么“吸粉大法”?
+拼多多直通车引流技巧!商家必读
+抖音新手怎样做好视频抖音新人上热门有什么技巧
+预警!2021年315商家易发问题汇总
+五个要点找准用户需求,挖出产品最大卖点!
+2021年京东她的节活动规则,做好准备大显身手吧!
+微信视频号与其它短视频的区别是什么?
+淘宝开店怎么跟快递公司合作?如何拿到更低的快递费?
+现在开淘宝网店是不是太晚了?卖什么比较赚钱?
+拼多多开店吃透数据,你想不爆单都难!
+解读!2021抖音直播带货趋势预测和玩法
+店铺运营如何打造爆款?
+阿里店铺运营如何打造爆款
+标题-优化技巧三招
+阿里标题的优化技巧
+运营店铺的几个关键点,你都做好了吗?
+淘宝怎么计算同行坑产?
+标题中的技巧:高质量词库如何建立
+这些拼多多的敏感词,新手一定要记住!千万不要触碰!
+阿里产品竞争力分析
+怎么样去搭建抖音账号?
+开淘宝店有年龄限制吗?开淘宝店有什么要求?
+开淘宝网店怎么取店铺名?淘宝店铺取名技巧
+淘宝店铺如何上传宝贝?具体流程是什么?
+阿里运营爆款打造时间计划
+谈谈阿里运营新思维,卖家必看
+京东好物榜,帮助商品引流高转化的利器
+天猫代入驻是否是一个赚钱的行业?
+如何做好千人千数据化运营
+淘宝开店跟天猫开店有什么区别?
+拼多多新店正确的起飞方法:小白商家需要注意的五大运营要点
+淘宝新店铺一般多久开始有单?新店怎么起步?
+现在开网店到底晚不晚?开网店到底赚不赚钱?
+抖音带货,真的有必要做吗?
+如何判断自己是否适合开淘宝店铺?
+宝妈在家做些什么可以赚钱?开网店赚钱吗?
+拼多多店铺出现差评怎么办手把手教你妥善解决差评置顶!
+抖音扫码霸屏系统为什么这么火?本质和抖音云探点一样
+京东商家注意!京东店铺风向标评价指标调整了!
+深挖李佳琦四大抖音直播带货营销方式,素人也能带货1000w+
+做好这些阿里店铺运营策划
+抖音扫码霸屏一个月能做到百万曝光?霸屏一座城?真的还是假的?
+优化无线端获取自然搜索流量
+阿里资深卖家总结的选款技巧
+2021年新手开网店怎么做才能赚钱?
+玩抖音三个月,在杭州买了房,抓住红利期,赚钱真的太太太容易了
+社群运营,你真的了解吗?
+新品上架到月销过千的技巧
+上班族想利用业余时间开网店怎么做?
+运营技巧-带你了解流量的秘密
+全职妈妈开网店怎么做?新店没有流量怎么办?
+新手开网店没经验怎么办?怎么开网店赚钱?
+淘宝开店前期怎么引流?怎么做推广?
+直通车化繁为简,助力爆款运营
+2021年阿里店铺运营思路
+淘宝店铺上架多少个宝贝最合适?宝贝上架有哪些技巧?
+为什么你的抖音没有推荐?是被限流了吧!什么情况会被限流
+阿里运营任何产品都是可以提炼差异化的
+手机淘宝店铺该如何装修?
+让你的业绩翻倍的朋友圈是怎样的运营的
+价格低了,转化反而下降,是怎么回事呢?-电商运营案例分析
+男装类目怎么运营?
+快手+抖音截取流量方法论有搜索的地方就有截流方法
+史上最详细抖音从0开始运营,绝对的看完起鸡皮疙瘩。
+店铺数据分析很重要?了解拼多多数据分析重要性,店铺引流事半功倍!
+史上最详细抖音从0开始运营,绝对看完起鸡皮疙瘩
+商品基础优化应该这样做
+商猫一君——灯饰接下来的电商趋势是什么?
+商猫一君——如何在灯饰电商这个大红海里闯出自己的一片天?
+商猫一君——灯饰电商除了低价与品牌之外就只有补单一条路可以做吗?
+抖音直播榜“思娴雅学”靠直播,一天涨粉2.6w!
+挖掘潜力爆款,阿里运营一定要学会测款!
+商猫一君——灯饰店铺怎么样运营会节省成本?
+让你爆起来的两周新品计划
+店铺初开,做好这些提升流量胜过推广
+2021年淘宝最新运营干货资料,值得你收藏!
+电商找明星直播带货,怎么才能避免被割韭菜?
+新手小白如何做抖音短视频创业项目赚钱
+厉害!农民工“高小健”在工地拍抖音成百万网红!
+阿里搜索权重和主图有关?运营的主图的几个技巧
+跨境精选问答:亚马逊店铺做不起来,可能是这个原因
+Get活跃新技巧,带你高效玩转社群运营(姊妹篇)
+抖音直播的流量究竟来自哪里?抖音直播流量怎么上去?
+抖音初期运营,如何让自己的抖音短视频账号快速涨粉
+2021京东降权的坑,你踩了几个?
+shopee虾皮出货延迟怎么办?花西子出海日本,竟三年成为跨境大卖
+微信直播有收益吗收益来源有哪些
+天猫入驻——答应我,保护好自己!
+打造人气网店!掌握多多进宝推广技巧,店铺流量暴增!
+阿里的不同层级的产品数据分析及提升
+运营面试问题和答案(一)
+视频号如何打造出爆款视频
+全国最火的电商代运营公司是哪个?
+天猫降低开店门槛,对商家是好事吗?
+正规的淘宝代运营公司,正规淘宝代运营哪里找?
+淘宝代运营公司十大排名,你确定这个靠谱吗?
+网店代运营的费用一年是多少?一个月的费用是多少?
+运营大神来教你怎么把网销宝用到极致
+如何做好社群运营,社群运营规则一览
+直播带货如何选品,如何才能选择爆款产品!
+商猫一君—品牌,未来十年的电商趋势!
+怎样低成本运营阿里店铺
+商猫一君—一次与淘宝代运营客户的详细合作经历!
+想开好店铺,要学会这套阿里运营思路!
+亚马逊FBA仓储费每月要3000多?
+你必须懂的五个电商逻辑!
+抖音表情包项目流量变现:不止引流到公众号一个变现方法
+什么叫抖音私域流量?怎么做抖音私域流量?
+一周涨粉210w,这位“蓝衣女神”跳跳舞就能把抖音账号做好了?
+直播运营新工具千呼万唤始出来,上榜智投火热上线啦!
+商家如何打造自己的直播私域流量?
+京东运营从零开始,了解一个新行业需要几步?
+十个副业赚钱必备的工具与平台,看看你到底错过了多少钱!
+抖音播放量低?这里有5个解决方法,新手必知!
+淘宝光合平台是什么?
+修改宝贝会降权?这5点要避开!
+淘宝的17种免费推广方法,最新版!
+深圳代运营公司哪家靠谱?
+淘宝运营主图优化3个技巧,流量自动上门
+阿里是运营什么,运营是干什么?
+新媒体运营面试会遇到哪些问题,怎么解决
+注意!直播带货要重点关注这些数据!
+商家必看!淘宝618备战活动实操方案
+阿里运营的技巧,让店铺流量飞起!
+阿里运营职责
+新开的网店,买的人很少,如何提高转化率?
+新手如何装修淘宝店铺?有哪些技巧?
+网店一直没生意,如何打造爆款,提高销量?
+跨境新纪元,速卖通洗脑纪录片,看亚马逊如何被赶超!
+网店代运营的套路真的深,你有收到陌生人给你发的代运营广告吗?
+现在开网店会不会太晚?还能挣钱吗?
+宝妈开网店如何才能赚到人生的第一桶金?
+淘宝店新上架的商品如何定价?这样定价,最合理!
+京东运营核心干货,引流+高转化,附实操教程
+全球速卖通不做库存,1688或淘宝一件代发给货代,时效来得及吗?
+开淘宝店需要营业执照吗?开网店需要哪些资料?
+现在开网店还赚钱吗?有发展前景吗?
+商猫一君——记录2011年5月10广州国际会展中心见闻。
+2021年全球速卖通小白开店需要准备多少钱?
+宝妈可以开网店吗?宝妈开网店有哪些好处?
+上班族适合开网店吗?怎样才能开好淘宝网店?
+年入50w抖音同城生意,2021最适合普通人的破圈项目
+上班族怎么开网店?淘宝开店怎么上架产品?
+宝妈怎样才能开一家赚钱的淘宝网店?
+比1688还便宜的41个货源网站,开不开店都值得你收藏
+宝妈在家开了个网店,但是没生意怎么办?
+假如某天淘宝天猫倒闭了,上千万商家该怎么办?
+按加盟连锁模式对店铺进行分类
+上班族怎么开网店?淘宝新店如何快速升钻?
+上班族业余时间开了个网店,店铺流量下降怎么办?
+全职妈妈适合开网店吗?淘宝开店需要做哪些准备?
+上班族兼职开网店,新店销量如何破零?
+宝妈适合开淘宝店还是做淘宝客服呢?
+上班族开网店卖什么产品好?
+宝妈开网店一个月能赚多少钱?怎样优化淘宝店铺?
+一个新品牌如何推广?
+商猫一君——天猫旗舰店运营推广方案!
+天猫站外推广有哪些?
+做电商,上天猫就够了?
+上班族如何利用业余时间开一个赚钱的网店?
+全职妈妈怎么开网店?新店没有流量怎么办?
+淘宝运营千万GMV店铺文案秘籍,教你写出卖断货的爆款文案
+一周8场直播,日销200w+,夫夫先生直播间到底有什么魔力?
+电商运营面试61条常见问题以及具备条件
+淘宝售假申诉-申诉成功的案例-自己经历两次你们看了之后决定如何挽救自己的店铺
+上班族开网店卖什么比较合适?
+宝妈可以开网店吗?新开的淘宝店没生意怎么办?
+阿里赔款182亿对电商行业意味着什么?
+上班族空闲时间开网店,怎么做才能有生意?
+全职妈妈想开个网店,卖什么比较赚钱?
+宝妈一边带孩子一边开网店,网店卖什么比较好?
+上班族业余时间开个网店,如何进行推广?
+全职妈妈为了减轻老公的负担,可以在家开网店赚钱吗?
+宝妈在家开网店,淘宝店铺如何推广?
+干货!深度解析抖音直播间营销活动玩法!看完就会!(文末有福利)
+视频号爆款方法论,又是一个赚钱的小秘诀呢
+投资2000块,做了一个产品
+淘客日进800+秘诀,外卖CPS项目第二部分,学生宝妈一定要看过来
+投资2000块做的产品究竟能不能挣钱?
+2021亚马逊Prime会员专享折扣
+外卖CPS项目,全程实操项目保姆级教程第三部分,学生可以看过来了,赚个生活费没问题
+提升店铺DSR,导致不降权
+打造爆款listing的优化技巧
+“低成本”电商创业,多少人踩过的坑
+放下姿态的天猫,是中小微商家的狂欢
+一招提高静默转化率【主图和评价设计逻辑】
+一招提高免费流量【标题篇】
+从零开始玩转天天特卖----活动后维护
+六年资深卖家总结的选款技巧,爆款要有这些特点
+小店随心推是什么?
+淘宝售假怎么办严重吗?说说我的经历
+自然流量误解!揭秘2021抖音自然流量玩法!
+淘宝电商运营36个细节检查(上)
+淘宝电商运营36个细节检查(中)
+上班族如何利用业余时间开一个网店?
+宝妈新开了个淘宝店,但是网店没流量怎么办?
+淘宝电商运营36个细节检查(下)
+电商公司如何招到靠谱的运营
+想做好直播带货,你必须要知道这个工具!
+给想做淘宝的朋友们的建议
+淘宝店铺怎么做?
+做活动的一些建议
+职业打假人投诉到了平台怎么办
+关于淘宝代运营,也就是TP公司
+淘宝店铺基础运营,6个小技巧教新手卖家打造搜索流量
+淘宝店铺流量破2000+暴力布局系列
+春节期间,才是店铺弯道超车的最佳时机
+淘宝网店发布的商品数量
+让淘宝插上翅膀让账户质量飞起来:质量分的提升技巧
+直通车时间人群数据模型锁定100%精准投放的时间和地域
+秋秋专栏】开篇:90%的电商创业失败原因:开始就错
+店群玩法第二篇
+店群玩法第三篇
+如何从0基础小白做到运营高手!
+小卖家如何利用营销方法做到爆款!
+6分钟,带你学会如何选择优质货源
+草根卖家必备:见效最快,成本最低的自然引流方法
+八年电商老兵,用二千字长文,解密标签的终极奥义。
+小白掌柜如何在淘宝持续地野蛮生长,快人一步?
+从新手小白到运营总监总结!
+中小卖家必看:淘宝小卖家五年沉浮的血泪教训!
+中小卖家还不会数据分析?小心下一个被淘汰的就是你!
+前方高能!淘宝开店决不能踩的七大雷区!
+淘宝人的苦有谁知道?实拍广州沙河服装市场拿货的淘宝卖家们
+淘宝店倒闭率高达95%!这几个问题正在慢慢毁掉你的店铺
+从青铜到王者,8年淘宝运营老司机如何炼成?
+卖家未海外直邮被投诉,“未履行海外发货义务”怎么破?
+在开淘宝店之前,你必须要知道的开店技巧
+你的宝贝距离热卖,只差这四点!
+运营必备一文教你读懂常用专业术语
+一个好的关键词,才能给店铺带来更多的流量
+微淘3.0重大改版,这8点变化卖家们必须了解
+感觉自己真的尽力了,但店铺就是没有好转?
+用过很多方法店铺流量还是持续下降?你可以试试这6招
+简单几步,教你把淘宝差评变成好评
+一个核心关键词的组合与标题的优化
+古哥说电商:卖家们注意了!刷单炒信电商主体将入失信黑名单!
+古哥说电商:弄明白这三个宝贝上下架技巧,你的流量至少翻一倍!
+古哥说电商:烧钱多还没效果?教你做个直通车“省油”老司机
+“上新直播”在微淘透出——已经上线!
+【古哥说电商】上线自有店铺,抖音:我不是社交平台,我是电商新宠
+古哥说电商:淘宝如何写一个最适合自己宝贝的标题
+宝贝降权如何把影响缩到最小!
+把主图利用直通车玩出新花样!
+古哥说电商:手把手教你玩转人群溢价,引爆精准流量!
+古哥说电商:走了许多弯路,才找到店铺访客下滑真正原因
+古哥说电商:重磅!今年天猫618销量计入主搜,玩法变了!
+古哥说电商:天猫京东618作战神图,掌柜们都该看看。
+古哥说电商:震惊!淘宝怒掀短视频战争,抖音瞬间被打懵圈
+靠直播一年带货7个亿,收入超章子怡,她是如何做到的?
+古哥说电商:店铺转化率低!你的详情页设计足够吸引人下单吗
+“对不起!”淘宝首次发布售假者致歉公告!
+【古哥说电商】拼多多把淘宝逼到墙角了?淘宝表示不屑与之竞争
+【古哥说电商】警惕!因客服说话不当,80%的店铺至少流失了30%的订单
+【古哥说电商】万万没想到系列:他激怒顾客,卖家却给了五星好评
+古哥说电商:做直播的都卖断货了!get这两个秘诀其实你也可以做到
+【古哥说电商】同样是卖苹果,为什么人家月销5万,你只有零星几单?
+【古哥说电商】新规来了!为规范促销,聚划算上线保价险
+淘宝流量下滑了该怎么处理?
+如何提高淘宝店铺转化!
+【古哥说电商】从零到五金冠,MG小象挤掉优衣库、Zara成女装第一
+【古哥说电商】这可能是史上最全的淘宝直播玩法了...
+盘点最不受顾客喜欢的详情页!快看你的店铺中招了没?
+还在辛苦找同行互粉店铺?1招帮你的收藏量在1周内轻松飙升20倍!
+【古哥说电商】如何写出让转化率提升5倍的神级淘宝文案?看这3点就够了!
+【古哥说电商】搞懂这16个直通车神操作,转化怒翻5倍,再也不用天台见
+【古哥说电商】新手必学!手把手教你做一个优质宝贝标题
+【古哥说电商】30%左右的畅销款创造了70%的营业额,你店铺的主推款真的选对了吗?
+【古哥说电商】【有图有数据】温州童鞋美女小卖家靠4招半年内营业额上涨15倍!日均1000单!
+【古哥说电商】如何写出让转化率提升5倍的神级淘宝文案?看这3点就够了!
+【古哥说电商】如何利用精选人群迅速提高点击率?你得先学会这5大招
+【古哥说电商】搞懂这16个直通车神操作,转化怒翻5倍,再也不用天台见
+怎么看待淘宝互粉!
+0基础,如何1周内让店铺扭亏为盈?100%出爆款!
+【古哥说电商】5分钟教你做一条让流量爆发的微淘内容
+【古哥说电商】无保留分享,3周内ROI怒翻3倍的分阶段优化法
+【古哥说电商】因为这短信营销攻略,三天后,我实现了营业额翻倍
+【古哥说电商】快速让不赚钱老店起死回生的5个方法,人人都能用
+如何处理让人头疼的中差评?你需要一套完整步骤和话术
+【古哥说电商】每天5件事情,做到了,你才算是合格的淘宝掌柜!
+【解读】新规来了!5点分析帮你搞定双11大促、聚划算、淘抢购
+如何处理让人头疼的中差评?你需要一套完整步骤和话术
+淘宝C店30天营业额实现两倍增长,突破300万
+令人汗颜!98年小伙开的淘宝店,都已经年入450万了...
+半夜笑醒淘宝真人卖家秀在国外炸了,海淘老外表示走火入魔
+累到尿血还亏损4万,他为什么仍四年如一日坚持做淘宝?
+厉害skr人!这家店1个月,4步走,手淘首页流量起爆到6万
+少女心收割机,这家女包店铺教你如何俘获95后
+某旗舰店找《焦点访谈》“自曝”刷单家丑?网友评论道出了真相!
+恕我直言,商品管理没做好的中小卖家等于慢性自杀
+爆款指南打造爆款8大法则,你get到了吗?
+亚马逊新手小卖家是如何把店铺开死的?
+亚马逊卖家账号被暂停后不能做的10件事
+手淘首页玩法7天操作日均5w流量玩法公测咯
+抖音运营抖音推广:如何想出爆款内容?
+卖家店铺“被售假“,怎么破?
+淘宝的免费流量如何获取?你知道多少?
+淘宝培训老师熟悉淘宝运营,为什么不自己去开店?真相你不敢相信
+电商法又出细则,利好小卖家?到底要交多少税?
+含金量十足的爆款玩法,日发千单不是梦
+如何开淘宝店?新手系列课第一节:店铺的基础设置
+如何开淘宝店?新手系列课第二节:货源选择的技巧
+如何开淘宝店?新手系列课第三节:市场分析
+如何开淘宝店?新手系列课第五节:宝贝发布技巧
+如何开淘宝店?新手系列课第四节:店铺定位
+找词渠道+组合原理,教你写出一个高权重的标题!
+如何开淘宝店?新手系列课第六节:怎样做主图
+主图优化—让你的店铺点击率翻倍流量翻倍销售额翻倍
+店铺权重这样提升,死店访客也能快速飙升!
+标题制作核心步骤,助力店铺流量翻倍
+淘宝免费玩法---新手专属选词技巧解析
+淘宝直通车广泛匹配引入的流量不精准怎么办?
+数据化精细选词操作,速涨店铺流量
+黑搜核心逻辑全面解析,教你如何运用到正常的搜索优化中
+淘宝直通车补单技巧,10天打造日发两百单爆款!
+直通车的基础操作实操技巧
+不黑车不刷单,纯白直通车带动自然搜索流量爆发,实操技巧讲解
+直通车数据报表分析技巧,这些数据你真的会看吗?
+淘宝直通车分时折扣设置技巧
+淘宝直通车地域精准投放,让店铺流量飞起来
+淘宝高权重标题的正确写作姿势,让你的流量爆起来
+淘金币对卖家有什么用?淘金币新玩法,一不小心流量就爆了
+直通车标准计划单品推广操作流程,由零开始教你开好直通车
+淘宝店转化率提升了70%,只因客服学了这套金牌客服沟通技巧
+直通车该如何选词:蟑螂药是大词还是精准词?
+送给做跨境电商的新卖家:跨境虽好,可不要贪心哦
+直通车太烧钱没效果?No!那是你把钱花错了地方
+跨境电商平台这么多,为什么非选择“亚马逊”不可?
+直通车太烧钱没效果?钱都是被你自己糟蹋完的!
+为什么我看了那么多干货,还是做不好亚马逊跨境电商?原因太简单
+利用直通车定向推广引爆手淘首页流量,操作步骤详解
+开店容易赚钱难?亚马逊店铺上架产品指南,小白卖家必看
+直通车点击率优化提升技巧,做好这五点你的点击率一定不会差!
+怕迷失在跨境电商的浪潮里?用数据告诉你亚马逊的独特优势
+亚马逊跨境电商的3种模式,哪一种最适合小白卖家呢?
+选词做标题,怎么判断关键词的引流效果?
+主图优化神技巧,让你的点击率飙升、飙升、再飙升
+跨境电商如今这么火,我该不该转行做亚马逊?
+淘宝标题选词独家技巧,怎么做才能选择一个神词?
+亚马逊店铺应该卖什么?5大类目让你轻松走上人生巅峰
+为何电商大批卖家选择退出淘宝,这些原因已经确认。
+微淘吸粉大法,引爆私域流量,实现爆炸式增长
+一小时卖100万,我和TOP卖家之间差了一个网红淘宝客
+直通车降低ppc带动搜索流量,持续打造爆款
+亚马逊开放印度站,中国卖家蜂拥而至,这到底是机遇还是大坑?
+亚马逊铺货模式,无需引流月入10万,错过房地产你还要错过它吗?
+淘宝卖家心声:我年销售额四千万,除去各种开支成本,差点亏本?
+不敢刷单了,流量却从300涨到了7000+,全靠这套爆款推广操作
+淘宝不刷单必死?做好黄金标题访客七天破1000
+不刷单不做数据!30天新品真实销量从0到10000+的操作思路
+淘宝老店新开诈尸还魂术!这套骚操作,死店立马满血复活!
+刷单黑搜升级版龙搜是咋玩的?两种操作引爆自然流量就是这么简单
+标题优化之三招打造流量破1000+的黄金标题
+刷单靠资源,好评靠技巧!如何刷出一个“好评如潮”的店铺?
+标题好不好,你要这么做了才知道
+怕刷单被抓?两招告诉你一张主图如何独霸市场
+想要提升产品综合排名,这套直通车引流加权操作不可不会
+淘宝运营——知道官方规则的人只是普通运营,好运营思想要超越规则之上
+亚马逊开店到底需要什么?轻松迈出第一步,掘金跨境电商!
+电商卖家:年销售额三千万,直通车烧100多万,年底亏了几十万
+7天破千14天破万!315严打之下如何操作?新玩法黑搜引爆首页流量
+主图文案到底如何撰写?引爆全店流量操作!
+跨境电商为什么要选择亚马逊?嘘,一般人都不告诉他!
+电商客服:9块9包邮的产品,买家不仅要好评返现,还要小礼品
+淘宝卖家:新店开张一个月,每天刷单还分享朋友圈,却一单没卖掉
+直通车搜索补单玩法,7天操作流量增长4700,纯开车也可以操作!
+朋友:对不起,没有5万块别做电商,现在已经不是低成本创业时代。
+为啥别人没刷单都比你优秀?那是因为你没这么做
+身价近8000亿的世界首富,靠亚马逊征服全世界,唯独败给了中国人
+如何利用产品卖点提炼策划出高转化的详情页
+淘宝新品如何实现7天完爆同行?新品破0的正确操作方法
+跨境电商前景卓越,中国假发成国际刚需,最贵可卖800美金
+电商新模式利用跨国物价差,轻松获取高收益,电商模式利益最大化
+电商卖家免费送衣服,只需顾客出运费,有人靠此收入不菲
+淘宝卖家:开店一个多月,活动亏本卖,产品利润低,每天都在煎熬
+淘宝卖家:第一家店刷单也没生意,后面新店啥都没做,每天几十单
+曾经逼倒实体店的电商行业,现在已反过来狂开实体店!!!
+店铺虚假交易被处罚怎么办?
+手淘搜索流量获取技巧讲解
+今年做淘宝,难在哪儿?
+电商新店新品破零的方法
+做好抖音短视频,跟上风口引爆流量入口
+如何快速寻找优质低价的蓝海货源!
+亚马逊选品-6个基本点来验证你的选品
+亚马逊选品-避免这些产品
+删除评价方法,百分百成功,天猫c店通用,没有删不掉的评价!
+如何做一个合格的淘宝运营?月入10万?
+手淘首页一次性搞定,实操经验解析手淘流量玩儿法!
+淘宝,京东,拼多多等电商平台。我们该如何抉择?活路在哪里?
+一年能有几次平台大促!教你如何先人一步迎战618!
+淘宝搜索~宝贝精准人群标签分析
+淘宝新手开店推广技巧
+微淘怎么玩?粉丝帮你弯道超车
+如何完美度过新品考察期?100%获取新品权重的方法
+【凯歌】突破流量瓶颈,3分钟了解店铺人群标签。
+全面挖掘淘宝天猫店铺流量下滑原因及应对方式
+五维黑搜刷单玩法,20单访客破1000
+淘宝新手如何分析市场选择合适的类目?
+教你如何进行数据化店铺诊断,提升访客,引爆潜力款
+淘宝店铺出现差评怎么办?一招教你解决差评置顶
+【山治说电商】大促过后如何维持搜索流量把控数据维护
+如何利用差评营销让你的转化率不降反升?
+亚马逊选品-7种方式
+不刷单,直通车引爆手淘搜索流量高端玩法
+直通车低价引流,不刷单只刷点击的黑车玩法
+618年中大促季,而我没报上618如何完爆流量
+山治感悟:电商大佬也曾兵败高考但从未放弃学习
+淘宝客适不适合你?解析淘宝客的优劣弊端
+0销量新品,单靠钻展打造爆款,实操布局讲解
+5个亚马逊运营小技巧
+2019年电商法出台,对店铺淘客有什么影响?店铺淘客还能做吗?
+产品内功深度优化,提升转化率的十六个核心操作
+山治说电商:2019下半场反思为什么你的手淘首页起不来?
+直通车标品类目双计划,打造超低ppc和高投入产出比玩法
+【亚马逊Listing优化】-后台信息优化
+抖音电商带货新渠道
+跨境电商与传统电商的碰撞,你会选哪一个?
+十年电商之路,有苦有泪,但我坚信,梅花香自苦寒来!
+渣男运营定律,好的详情页就要像渣男一样
+拼多多入门:七天订单实现从0到1000,新人再也不愁没有交易额了
+拼多多与快手强强联手!作为消费者的你怎么看?
+拼多多新手商家基础回答
+不想成为流量绝缘体?新手新店如何设置营销活动
+揭秘:抖音新手3天实现粉丝破100w+的操作秘籍
+淘宝的宝贝详情页怎么样做才算优秀?你的方法对了吗?
+为什么你开了直通车还是没流量?原因可能在这里!
+标签化黑搜玩法,深度标签化爆搜索流量实操步骤分享
+抖音运营的小知识,如何快速上手抖音
+山治说电商:快手,被忽略的流量洼地;快手商业化提速你准备好入局了吗?
+新手篇:你做淘宝是在做什么?我的是为了赚钱的同时教你赚钱!
+电商运营会组标题的人,究竟有多赚钱?不会,我来教你!
+山治说电商:2019年,最新的三大商业创新模式:圈层社交、私域流量、会员制度
+【亚马逊选品】利用Helium10选品的三种方法
+山治说电商内容为王的时代,如何做出高转化的详情页
+如何举报拼多多商家卖假货?
+拼多多个点教如何用场景推广打造爆款!!!
+提前布局关键词精准引流,后期躺着自动变现
+【亚马逊】如何筛选关键词?
+淘宝会员名字怎么修改?修改方法介绍如下
+淘宝店铺如何获取海量手淘首页流量?猜你喜欢具体怎么做才有展现?
+淘宝新品没有基础销量,开直通车会不会没效果
+天猫淘宝抽检怎么办?
+淘宝新品如何快速提升权重?
+拼多多缺货时商家这么做能避免遭受更大损失?
+淘宝免费流量这样会暴涨
+拼多多新手运营,分享简单开店技巧!
+淘宝店铺如何获取海量手淘首页流量?猜你喜欢具体怎么做才有展现?
+淘宝怎么样才能增加关键词的流量呢?
+直通车应该怎么样开才能带来”自然搜索流量”?
+关于亚马逊关键词的一点思考
+淘宝爆款标题如何选词、组合、优化
+拼多多商品如何制作大流量标题【步骤教学】
+山治说电商:先人一步利用极致标签掌握小单量螺旋搜索玩法
+亚马逊运营常用工具
+山治说电商:小单量螺旋补单真的能引爆搜索流量吗?
+2019二类电商短视频营销该如何去做
+山治说电商:「玩法测试③」关键词叠加玩法是否还能有效操作?
+2019年淘宝开店详细流程以及淘宝开店需要具体的费用明细,帮助分析一下淘宝开店需要多少钱。
+淘宝新手卖家,快速提升自然流量、搜索流量的基础攻略。
+淘宝新品上架,如何提高宝贝权重?如何快速获取展现?三个小方法可参考。
+买家确认收货后差评又申请售后怎么办?
+淘宝电商:我打算开个淘宝店卖什么好呢?这篇文章告诉你
+淘宝打造爆款运营烧脑篇,实操干仗爆款四个模块
+电商视频时代的你需要知道的基础知识
+淘宝店铺新起单品如何从0开始打造爆款全面解析—实操经验
+我们要怎么做一个淘宝新店?重在思路
+刚入驻淘宝卖家之日常运营
+淘宝运营的3个小技巧一定要知道
+直通车调价,直接改关键词出价还是调整时间折扣?技巧有哪些?
+淘宝店铺2021年运营成功的核心秘籍
+算了随便加一个标题好了,反正是给自己看的
+学会优化主图点击率,才能打动你的顾客!
+山治分享:手淘搜索全店布局玩法有效吗?是否成为搜索玩法大牛?
+山治分享:深度解读直通车人群新玩法,快速撬动全店精准流量
+双十大促,客服急训:活动必备话术全集
+山治分享:「玩法测试⑥」双标签玩法是否同样适于手淘首页?
+山治分享:5分钟了解直通车精准人群作用及设置
+没转化?没流量?没优化方向?教你深度剖析产品解决“3没”提升流
+临近双十一,淘宝怎么补单你还不懂吗
+「山治分享」:标品直通车推广思路,附投放精确城市技巧
+淘宝直播玩不起来?可能是你不会分析数据而已
+山治分享:「玩法测试⑧」如何利用淘金币打造手淘搜索高爆发款?
+山治分享:如何做好店铺以及关键词的人群定位?
+山治分享:2019双11主图打标工具操作详解
+抖音推出“创作者成长计划”让1000万创作者赚到钱
+月入3W的社交电商玩法!人人都可复制执行!学会一半也能轻松月入过万!
+山治分享:我是靠电商赚钱的,但是我要揭露一下电商圈黑幕
+淘宝直播数据分析
+学会抖音短视频上热门技巧,轻松涨粉过百万
+为什么相同的东西淘宝和京东价格不一样?
+淘宝内部优惠券的前世今生(篇一)
+淘宝内部优惠券的前世今生(篇二)
+抖音不养号打造高权重,抖音账号限流解法,Dou+精准数据分析提高roi,全在这里。
+抖音带货月佣5000+?全网最强高佣社群?抖音整体局势?
+万圣节2天倒计时,你的亚马逊网店上了什么?
+山治分享:临近双11店铺又被隐形降权?这几点你一定要记住
+了解淘宝直播6大技巧,学会分析播主详情,让商家把握主动权
+淘宝直播数据怎么做到高效分析?知瓜数据分析商家直播必备技能
+个人创业做亚马逊需要多少启动资金?
+亚马逊运营-长尾关键词的价值
+山治分享:你还在高价屏蔽差评吗?out了!免费的法子好几个
+山治分享:双11最后3天收藏加购尤其重要
+山治分享:宝贝标题里隐藏的那些小秘密,和流量关系重大
+山治分享:打标签不是简简单单的去浏览同行产品,还得这么做
+怎么查看同行淘宝直播排行与他们直播间的各项数据
+淘宝直播现在做还来得及吗?了解这些直播相关数据,你就离成功不远了
+现在做淘宝直播还来得及吗,了解淘宝直播大盘数据就知道啦~
+新手小白如何开始做跨境电商亚马逊?
+网站排名一掉再掉?你需要注意这15个常见的谷歌SEO误区
+运营三个月的shopee虾皮店铺,为何销量很低?
+Shopee店铺的定位如何确定,如何打造属于自己的店铺风格呢?
+头部播主是如何运营淘宝直播的,学会这几点,知瓜数据让你的直播间不再是自嗨
+东南亚shopee跨境电商运营,什么是一店通(SIP)功能?
+【知瓜数据】淘宝直播大盘数据上线,全网流量一目了然
+Shopee如何获取免费流量?获取免费流量的方法有哪些?
+千万不要随便轻信,别人摸索shopee(虾皮)跨境电商,轻轻松松月入过万的神话!
+闷声发财的创业项目,shopee(虾皮)跨境电商。
+淘宝商家的噩梦,遇到仅退款买家怎么办?
+网店运营硬伤
+【梓陌教你拼多多】你们胆战心惊的秒杀活动详解来了!!!(超细节版)
+选品第一步,如何找到能让你挣到钱的机会产品?
+电商,怎么做
+如何店铺诊断?
+新手卖家一定要注意好这几个问题
+如何让你手淘搜索流量快速飙升
+为什么直通车烧钱没有效果?
+淘宝店铺都是什么模式吗
+东南亚专题:Shopee快速运营策略
+揭秘淘宝差评的方法,天猫淘宝都适用
+淘宝新人必看!
+淘宝怎么提高流量
+怎么样才能做好国内电商运营?
+电商小白从何入手电商运营
+电商平台的数据分析基本指标体系
+亚马逊注册资质和所需材料(快速入门)
+淘宝内部隐藏的大秘密到底是不是真的?真的能省这么多钱吗?!
+为什么中国电商冲击这么大,但是美国缺没有?
+新人如何做电商?
+网店的促销活动
+国内电商发展三大趋势
+怎么样才能做好国内电商运营?
+亚马逊注册流程(一看就会)
+关于电商前途的分析
+如何写出淘宝爆款文案?一定要熟记这6个要点1个公式
+文案运营的小技巧
+电商运营中,如何提高转化率?
+电商的付费三架马车是什么?每个推广工具的作用以及区别是什么?
+淘宝店铺做活动的目的是什么?
+那些社交电商用户裂变的玩法
+淘宝宝贝标题优化技巧
+网店的标题优化从哪做起?
+淘宝客服的工作职业有哪些?
+想做网店,宝贝标题怎么优化呢?
+国内那些做的很好很火的网店,究竟是怎么样去做运营的?
+如何运营好国内电商平台的网店?
+作为淘宝电商小白应该怎么入门
+宝贝页面装修
+跨境电商(亚马逊)注意事项
+拼多多的电商技巧
+关于标题的这几个原则你知道多少?
+阿里巴巴“淘小铺”经半年测试上线啦!
+拼多多新店怎么有效的去提高权重,从而让流量增长?
+【梓陌说电商】拼多多做店铺不会选择推广方式?差评不会解决?梓陌教你几个小技巧
+小红书笔记不收录?如何提高收录率的6个方法
+天猫店防侵权宝典,给即将开店的你!
+淘宝商家是否最终会走向天猫?
+⑴Shopee发展及东南亚跨境电商前景
+直通车点击率低只知道改主图?做好这些3天让你飙升点击率
+山治分享:超级推荐图文推广打爆内容实操,助力抓住50%流量入口
+直通车可以带动自然搜索流量吗?
+新链接如何做好基础权重?商家如何通过工具拥有更多的粉丝?
+拼多多活动过后订单下滑?流量出现断层?教你怎么解决(高阶)
+阿里巴巴诚信通店铺后台指标注释(最全)
+如何给你的网店起个好名字
+3个月打造1个产品,躺赚3年
+腾讯直播入驻相关问题全面答疑(一)
+淘宝直播丨播主实时监测数据分享--大英子LOVE
+新的一年,淘宝如何做?
+淘宝如何快速的打标。
+淘宝新手要跳过的坑!
+16种让你亏钱的产品
+新品上架第1天,0评论,出了7单,大概是走了狗屎运
+亚马逊卖家死法千万种,最悲剧的死法莫过于此
+疫情下电商如何迅速崛起
+微信直播和淘宝、抖音、快手直播有什么区别?
+疫情期间拼多多新手商家开店店铺定位以及操作方向,想做好店铺先定好方向!
+7个简单实用的小技巧,让你的抖音播放量轻松翻3-5倍
+疫情下电商如何迅速崛起
+拼多多开了直通车就万事大吉了吗?点击率才是转化的关键!DSR在电商中是怎样一个角色扮演?
+疫情下电商如何迅速崛起——第四期《疫情期推广方式选择》
+2020淘宝小白攻略指南
+抖音的流量推荐算法,解决你所有的流量、推荐热门、账号问题(不全打我)
+拼多多新手商家开店【第二章】如何打造精准的人群标签?新链接必看!!!
+【干货】在淘宝上收到专利投诉,DUCK不必慌,我们可以这样做?
+【干货】在淘宝开店,我们需要了解的退款排查知识产权
+拼多多新手商家做店流程(小白必学)学会这招做店不迷茫
+如何在淘宝长期生存
+直通车6分、7分,怎么稳步搞到10分?你犯的错,我也都犯过
+腾讯直播(看点直播)如何让“悬空的”私域流量变现
+淘宝网各项违规扣分汇总(最新)
+腾讯直播-显示“无直播权限”的解决办法
+如何做好产品差异化?
+什么样的人适合玩短视频
+一文详解13个直播平台核心玩法,抓住2000亿直播红利,李佳琦也用这些招!
+腾讯直播-权限开通后,我们要做什么?
+感恩说直通车:关于计划权重高了就能降低ppc吗?
+在淘宝开店,你需要了解的知识产权是什么。
+新品上新没权重?3分钟教你写出高权重标题,0费用冲销
+超全抖音运营总攻略(下)——抖音推荐机制及变现策略
+小卖家需要掌握哪些电商运营技巧?
+新手开直通车推广计划要注意的事项
+直通车真的是一个“坑”吗?
+虾皮shopee,究竟选择做本土还是跨境?
+直播时如何让自己变得独特
+腾讯直播-98%商家腾讯直播审核不通过的原因
+感恩说电商:9个字,快速判断你是否合适电商运营
+新手开直通车推广计划要注意的事项
+一个朋友的淘宝创业忐忑之路
+万万不可大意!就因为这个关键词没写,销量第一搜索流量反被第十八名给超了
+都说虾皮赚钱,你赚了吗?看看大卖家都怎么做?
+特殊时期,这样运营店铺,会让你的生意在一个月后翻10倍
+虾皮店铺没有流量?注意这几点,流量立马翻倍。
+江雀:天猫如何引爆用户热情,获得众多商家青睐?
+【干货篇】现在做电商直播还有机会吗?
+感恩说电商:新手卖家做好详情页,让你的转化翻倍
+那些让我亏钱的产品
+给做虾皮shopee创业伙伴们的建议
+标题取得好,流量长得蹭蹭蹭!
+腾讯直播-推流直播功能
+科学操盘直通车【推广系列:一】
+千人千面下卖家如何获得更多个性化流量
+如何制作优秀的宝贝详情页
+感恩说电商:如何自我诊断店铺
+感恩说电商:关于补单您不得不注意的点
+感恩说电商:标品和非标品的区别
+新手也能玩转淘宝客推广
+中小卖家需要掌握哪些电商运营技巧?
+感恩说直通车:如何让主图成为你赚钱的利刃
+感恩说直通车:想要做好一款爆款?做好这几点
+感恩说电商:标签很简单,就看你怎么玩
+感恩说直通车:关于直通车预算与转化的因素有哪些?
+[整体运营]淘宝店铺没有流量怎么办?
+直通车测款技巧【推广系列:二】
+感恩说直通车:别让不会降直通车PPC而毁了计划权重
+原来抖音小店的精选联盟还是能开的!满足这两点要求就可以了!
+感恩说电商:什么是阿里妈妈“超级推荐”?
+【抖音直播】直播3大注意事项和直播间人气提升7大方法
+爆款直通车关键词操作出价始末
+学会淘宝直通车定向解析,让你开车不再难
+【干货篇】短视频平台的算法机制2
+如何制作优秀的宝贝详情页
+感恩说电商:9个字,快速判断你是否合适电商运营
+传统电商运营人员2020年如何维持自己的核心价值
+直通车如何省钱【推广系列:六】
+直通车工具应用技巧【推广系列:七】
+感恩说电商:引爆单品流量的一些细节
+感恩说电商:限制店铺流量的因素有哪些
+直通车底层逻辑的深度解析
+抖音创作全攻略
+直通车小工具盘点【推广系列:八】
+千人千面下卖家如何获得更多个性化流量
+感恩说直通车:定向如何带动首页流量
+腾讯直播-如何辨别是不是第三方平台
+直通车之基础讲解
+直通车推广老做不好?这些误区你踩中几个?
+感恩说直通车:如何从零开始启动初级个人商业模式
+感恩说直通车:精准匹配比广泛匹配好?
+感恩说直通车:0基础怎么做店铺
+感恩说直通车:如何提升产品的转化率,让转化翻倍?
+感恩说直通车:直通车也是有规律的
+700000美金被冻结,因亚马逊卖口罩店铺被封?看招商经理怎么说
+感恩说直通车:如何提炼自己的卖点
+感恩说直通车:直通车机械化?
+感恩说直通车:天猫淘宝无线流量优化权重要点!
+感恩说直通车:流量突破技巧
+感恩说直通车:淘宝雷区不能踩!
+感恩说直通车:直通车前期的操作
+抖音引流到微信的7个方法
+感恩说直通车:人群溢价如何看待?
+感恩说直通车:关于直通车的平衡点,你不得不知?
+感恩说直通车:宝贝到底应该如何定价
+如何做好直通车基础?
+标品直通车推广心得
+抖音短视频5步创作流程?
+感恩说直通车:关于如何做一个爆品
+感恩说直通车:关于预算多少合适
+【抖音短视频】抖音视频要想流量好这3大雷区不能踩!
+感恩说直通车:还怕你的ROI不高?
+别再花冤枉钱代入驻了,虾皮申请网店就这么简单
+【抖音推荐算法】抖音的推荐页原理大揭秘,掌握这4点轻松上热门
+感恩说直通车:轻松玩转老客户做好基础销量-成交篇
+虾皮shopee开网店,你的利润达到多少?不到30%的话,我告诉你问题出在哪
+淘宝新手卖家的六种选品思路
+【抖音运营】抖音短视频常见的内容形式有哪些?
+感恩说直通车:定向需要定时开
+【抖音短视频】如何找到自己内容的独特点?
+感恩说直通车:直通车上分两大招
+直通车基础操作与相关优化
+【抖音短视频】如何打造一款爆款视频?五点理论详解
+只分享实操!淘宝的极限权重
+直通车如何选词优化人群
+感恩说直通车:直通车前世今生第一部
+【抖音短视频】玩抖音必备的基础知识(上)
+淘宝怎么开店?具体步骤有哪些?
+如何提升直播带货效果?可以试试这一经典营销理论
+阿里巴巴一件代发具体怎么操作
+【抖音短视频】玩抖音必备的基础知识(下)
+感恩说直通车:标题优化思路
+感恩说直通车:直通车前世今生第二步曲
+直通车的测款必学思路
+【抖音短视频】玩抖音必备的基础知识(其他惊喜小功能)
+直通车关键词如何培养?怎么删除词?
+淘宝店铺流量渠道解析
+【抖音直播】如何利用电脑端进行直播间选品操作?
+感恩说直通车:为什么不能靠直通车打爆款?
+拼多多、淘宝运营,做一个款的流程
+感恩说直通车:直通车人群你们了解多少?
+【抖音直播】在抖音直播我们需要准备哪些设备?
+【抖音直播】如何开始一场抖音直播?
+【抖音直播】想要直播效果好,社区规范要知道!绿色直播的正确打开方式都在这里
+【抖音直播】直播3大注意事项和直播间人气提升7大方法
+做淘宝店铺如何修改宝贝不降权?
+删除淘宝天猫恶意差评秘籍
+【抖音运营】抖音小店新规则,做这四个类目的注意啦
+“淘宝”和“天猫”有什么区别?为何要分开?
+直通车系统操作
+内容运营基本功:如何写出让人眼前一亮的优质文案?
+内容运营需要做什么?不妨从这7个方面入手!
+内容运营:如何做一个迅速吸睛又优雅的标题党!
+什么是直通车
+【抖音直播】抖音直播过程中一定要注意的规则事项
+【抖音规则】抖音平台禁止分享商品目录
+淘宝主图
+【抖音运营】如何提高直播间的流量?
+社群运营到底该怎么做?这6个手段你需要知道
+直通车数据怎么和生意参谋不一样
+用户运营基本功:如何完美的规避用户转化误区和及提升转化率
+用户运营精细化运营之用户激励体系
+淘宝详情页
+【拼多多直播】直播运营必须要掌握的2大技巧
+你的虾皮网店不挣钱,是因为不会科学利润搭配
+我是一个初入电商的小白,通过一步步努力,实现月销10W的营业额
+直播和短视频很火,可带货的泪水有谁看到?
+《感恩说直通车:关于新店新计划的权重解答》
+牛气学堂-淘宝直播从0到1实操24讲-塑造有魅力的主播
+拼多多新店运营实操:巧开直通车教你流量15天从0突破至18000+
+店铺运营没流量?做好三点胜过推广
+直通车作用
+如何筛选产品关键词?
+直通车带不动搜索流量?它们的共性先了解下
+助阵618,淘宝直播专题活动数据分析正式上线
+免费流量带不动,烧钱还是没流量?正确看待多多付费推广作用,运营实操总结!
+电商运营需要掌握哪些核心技能?
+新手小白如何通过抖音淘客月赚3w+
+运用好直通车推广,让单品流量来得更早更快一些
+拼多多如何提高点击率?详情页做好了吗?三步实操完美优化内功,打造日销三百单小爆款
+最新暴力安全的黑搜玩法,访客轻松破万!
+电商运营实施成功的关键是什么?
+拼多多爆款打造的流程和步骤,实操运营,通过最新“黄金爆款内功布局玩法”!14天流量暴涨15000+
+拼多多新店快速升级的必走之路:选品选款、数据积累、爆款塑造,新手到高手的实操运营步骤
+淘宝直播热评词分析上线,助力播主进行热度跟踪
+阿里巴巴平台淘宝违规类型有多少种?
+【大神答疑】拼多多应季新品要如何推?注意以下的点,推爆应季产品!
+淘宝直播“流量外逃”,电商人该如何往前走?
+感恩说直通车:淘宝直播直通车,新功能玩法?感恩带你解密
+虾皮申请店铺时,这些细节把握住,再也不担心申请被拒
+红尔商城教你10分钟掌握微信推送全技巧
+如何打造爆款?这几个核心点,你知道吗?
+500元直通车能开多久它带来的收益是怎么做的?
+淘宝直通车怎么降低点击费用方法技巧
+淘宝、天猫被投诉知识产权商标不当-滥用该怎么办?
+直通车推广设置
+抖音一条视频带货29万单,7天狂赚400万!
+如何用直通车测款测图打造爆款
+淘宝直通车标准推广和智能推广哪个好?
+拼多多新店7天访客破10000+实操秘籍,新手必看
+新手直通车怎么开关键词怎么设置?
+超级省钱直通车扣费原理
+说实话,我还是佩服电商主播
+拼多多推广权重一直处于下位?详解快速提升免费流量技巧!快速引爆免费流量!打造日销480单的小爆款!
+刷单找死,不刷单等死?
+自媒体搬运高招!西瓜、美拍、好看也能快速搬运到抖音、快手平台
+快手电商主播销售额6月24日
+拼多多直通车拉升免费流量的方法,以及降低ppc(点击花费)提升质量分的技巧
+如何做好电商运营?这5个思维方式你必须学会!
+新手如何快速学习电商运营方法
+第4课新品标题如何打造
+2020年淘宝卖家的三种生存出路!
+第5课新品标签如何打造
+怎样快速打造爆款?拼多多运营实操
+看透竞店爆款投放技巧,也能成为直播赢家
+第11课获取一个高转化产品的维度
+社交电商、社区电商、社群电商,傻傻分不清楚
+一个人做淘宝店需要多少技能
+虾皮开店最强扫盲篇,看完了少走弯路、少被骗,不要太感谢我哈
+第13课10个产品:要么测1爆款,要么死9次
+第14课移动互联网,5张主图决定生与死
+第15课买家秀、问大家,比移动详情更重要
+抖音账号怎么养号?养号技巧分享
+第16课破解一个爆款的危机,设置爆款群
+这就是我坚持转型到腾讯直播的原因。
+淘宝运营毕业考试题,看看你能否毕业?
+直通车助力推广,蓄势待发,爆涨手淘搜索流量!
+新手开店需避开哪些误区?低价策略能超越竞品店铺吗?
+淘宝售假的危害对店铺的打击会怎么样?
+有哪些产品不适合开直通车!进来看看你中招了没?
+如何利用全店关键词布局获取大量免费自然搜索流量
+淘宝开店30元就可搞定,不需要再傻傻交1000元保证金了
+关于运营思维的思考
+直通车操作技巧最全讲解!
+淘宝标题写作的六大基本原则
+搞定细分市场,小卖家也能突围!
+抖音视频为什么不上热门?这点很多人都在犯!
+拼多多宝贝搜索排名的细节,新店增权标签补单玩法,新品14天快速访客破,教你打造日销500+单小爆款!
+淘宝售假扣2分影响流量吗?售假扣分会不会影响流量?
+淘宝新手开店切记重复铺货,会有什么处罚?
+淘宝新手标的标准是什么有哪些类目?
+全面分析抖音算法推荐机制(强烈建议收藏)
+抖音小白必须知道的100个抖音专业术语(建议收藏)
+抖音怎么做才能火,如何做好抖音短视频?
+抖音营销推广怎么做,如何做好抖音营销推广?
+第19课80%的电商开直通车翻车死
+第20课如何避免直通车开翻车
+第21课直通车撬动手淘首页的原因
+学写淘宝天猫运营计划书,看我这一篇就足够
+微淘入口有哪些,新手怎么做好微淘?
+如何提高淘宝店铺的转化率?有哪些关键要点?
+第22课直通车盈小利还是全店盈利
+你知道如何制作高点击率主图吗?
+免费流量付费流量搜索排名,你不知道的那些?
+第23课直通车关键词玩法过渡到人群玩法
+小红书运营怎么做,如何做好小红书运营?
+淘宝该怎么去选款
+抖音账号权重与被推荐指标
+新手开店如何建立淘宝粉丝群
+淘宝运营必须知道的七个点
+快手运营心法,百万运营大咖不愿透露的秘密!
+超全短视频玩法!!如何成为短视频百万博主
+手淘搜索30天没流量词语怎么办?
+怎么让宝贝排名更靠前?提高宝贝排名技巧
+淘宝新手卖家如何制作高点击率主图?
+爆款爆图直通车如何快速测试
+这样优化直通车,投产比至少高一倍!
+产品能不能打爆,如何判断数据指标?
+【电商杂谈】客服=销售?销售人员在电商领域的弱化
+直通车关键词出价技巧,新手必看
+淘宝新手商家如何布局手淘问大家
+抖音上热门,短视频推荐算法和上排名
+抖音运营:如何打造一个价值百万的个人IP
+打造一个赚钱的抖音小店直播带货变现涨粉运营技巧
+抖音如何开通电商橱窗直播带货呢学会这几步你就懂了
+直通车应该怎么开?提高流量+销量的操作秘诀!
+价值10万的直播技巧分享——干货篇
+淘宝买家秀征集活动是什么?
+淘宝店降权还能恢复吗?有哪些恢复小技巧
+直通车关键词出价技巧,新手必看
+店铺该如何去运营
+淘宝运营必须知道的七个点
+你的直通车引流计划建多少个合适
+直通车投产比不稳定,时高时低怎办?
+淘宝该如何去运营
+怎么设置淘宝店铺买家秀?
+【电商干货】新品开车前必须要做的几件事!
+新手淘宝卖家的选款操作方法及策略
+淘宝新手卖家如何用超级推荐拉新?
+淘宝短视频为什么审核不通过?发布基础规范有哪些?
+淘宝短视频栏目如何发布内容?
+你店铺人群标签不准该怎么矫正
+淘宝直通车与淘宝客钻展有什么区别
+6亿人都在用的拼多多
+高转化商品标题优化
+淘宝店流量来源入口有哪些
+看看虾皮开网店能赚到钱的人,都具备哪些素质?你有吗?
+抖音短视频前期怎么做?有那些方法和技巧?
+抖音短视频带货应该怎么做呢?应该注意那些地方?
+新人主播怎么直播?应该怎么直播?
+短视频如何盈利?短视频怎样变现?
+如何提高抖音账号的权重?应该怎么做?
+上传抖音的视频不清晰,这5招帮你解决
+不想当韭菜,这12个抖音账号必须关注!抖音干货、最新政策、橱窗攻略,通通告诉你!
+使用执照开通抖音小店的注意了,退回保证金必须填写对公账号
+拼多多0访客0订单的死店怎么做活?4年来卖家分享经验心得
+抖音账号如何精准定位,如何垂直定位,如何追踪定位?
+抖音平台视频质量算法揭秘
+抖音带货视频该怎么获利最大化呢
+抖音短视频怎么玩赚钱,不真人出镜,一样可以打造出百万粉丝抖音号!
+小轩说:抖音影视剪辑教程,影视剪辑视频上热门的技巧
+拼多多的点击率该如何提升?
+晨轩说:抖音影视剪辑教程,如何制作出一个高质量的视频?
+教你抖音短视频取好标题的技巧,点赞轻松破十万!
+淘宝7天上下架怎么操作
+拼多多的转化率提升逻辑,这些细节你都注意了吗?
+厉害的运营是这样判断一个类目能不能做的
+教你7步设置直通车智能计划群低价引流新玩法
+做抖音短视频,内容运营才是硬道理!
+新品快速起流量的2种方法
+如何快速获取手淘首页免费推荐流量
+淘宝小店一年运营心得(续更...
+在拼多多打造爆款你要注意的七点
+(干货)7天养出高权重千粉抖音号完整攻略(直播带货必备)
+实操8步超级推荐如何带动搜索流量
+手淘首页猜你喜欢买家秀短视频免费流量获取
+被抄袭无数次的主图营销设计思路
+关键词搜索你不知道的细节三点
+店铺有收藏加购,但是转化效果不好怎么办呢?
+关于亚马逊日本站选品的一些问题
+电商新手也能做的淘宝直播运营小技巧
+干货!直通车详细实操流程,你还在为数据不好而担忧?
+这十条运营技巧让你做运营达人
+实操爆款如何选择引爆搜索?
+直通车远不是烧钱这么简单
+中小卖家必备差评回复话术
+整体网络的流量不小,为什么淘宝上面的搜索流量越来越难获得?
+戳破泡沫,品牌方企业如何发展直播
+直通车投放结束就没转化,搜索流量又很少?
+手淘推荐流量很大,但是没转化怎么办?
+淘宝新手卖家都会犯的5大错误(上)
+淘宝新手卖家都会犯的5大错误(中)
+手机淘宝搜索场景再次升级,推出“品牌专区”?那些你不知道的变化?
+淘宝宝贝排名怎么靠前?影响排名的因素有哪些?
+手淘搜索排名是什么原理?排名如何快速提升?
+淘宝dsr评分降低怎么办?如何在发现下滑时挽救?
+抖音短视频直播点赞有什么用?对直播有什么影响?
+淘宝售假扣2分店铺降权多久?对店铺有哪些影响?
+淘宝开店当宝贝被降权后该怎么恢复?
+我用feed+抖加投直播间仅用5000元销售了50多万
+如何快速打造爆款抢占免费流量
+淘宝直播如何引流?淘宝直播引流的四个方法
+淘宝卖家如何提升店铺权重?从三个方面入手
+淘宝店铺降权怎么处理?
+淘宝新店有流量扶持吗?到底是怎么扶持的?
+怎么参加淘宝活动打造爆款?
+新开淘宝网店如何避免踩到雷区?
+淘宝店铺权重越高,是不是流量就会越多?
+淘宝店铺转化率低,是转化率出问题了吗?
+淘宝换季上新该如何选款?
+淘宝遇到中差评怎么办?如何从根源杜绝中差评?
+淘宝网店如何做好内容营销?
+做淘宝客服流程分享,如何做淘宝客服?
+2021年的电商,直播+内容?
+实操精准收割流量,超级推荐6步设置
+如何降低网店的差评?
+实操3步设置教你快速找到产品加购量
+为什么抖音直播间不进人?
+手淘首页流量的特点是什么?
+实操如何分析产品是否打标入池,获取免费流量
+淘宝卖家如何通过微详情获取更多免费流量?
+实操X步分析高流量标题
+淘宝直通车价格设置多少比较合适?淘宝直通车怎么正确出价?
+淘宝直通车是什么意思?什么是淘宝直通车?
+LOOK!拼多多推广误区!如何避免这些误区?
+直通车实际成交金额,会大于报表数据怎么回事呢?
+注意!!!直通车关键词匹配方式发生变化,进来看看!!!
+淘宝直通车推广技巧
+实操2种方法提升新品转化率2倍
+快来看看!直通车有点击但没有咨询怎么解决。
+来看看直通车关键词排名怎么回事!!
+实操新品初期直通车不建议开的人群,避免踩坑花钱
+淘宝新开的店铺没生意怎么办
+攻略:淘宝优化创意标题
+如何查看商品标题中是否含有违规词?
+实操3种方法收集关键词提高流量
+【浅谈】淘宝权重有什么意义?
+影响宝贝转化率低的几大误区
+影响宝贝转化率低的几大误区(二)
+如何利用平台工具进行促销设置
+店宝宝:快手电商和抖音电商有什么区别
+淘宝直通车和自然搜索的区别是什么?
+超级推荐带动首页的流量原理是什么
+自己申请天猫需要花多少钱
+PPC广告优化的基本思路
+淘宝运营如何做好年终复盘?
+实操用标签人群来获取流量,放大流量
+什么是场控?直播场控的重要性有哪些?
+标题-优化技巧三招
+90%拼多多商家都会误入的坑,新手注意啦!
+直通车最细优化方法
+淘宝会员名可以改吗?
+天猫店铺运营,如何突破瓶颈,天天爆单!
+标题中的技巧:高质量词库如何建立
+2021年淘宝全年活动时间表【已更新】
+5步打造高转化产品
+抖音六大基础问题你知道几个呢?
+搜索排名规则解析(上)店铺权重和商品数据
+搜索排名规则解析(下)商品权重和人群标签
+拼多多店铺转让时需要注意什么?
+拼多多新手必学技能,店铺测款详细攻略
+直通车高效引流,打破店铺流量瓶颈!
+新手做抖音必须要了解,必须要知道的
+淘宝新店有流量扶持吗?淘宝最新流量扶持政策是什么?
+店铺如何提高转化率
+阿里有销量没排名的原因是什么
+为什么新上架的淘宝宝贝搜不到?
+淘宝店铺名字重要吗?淘宝店铺取名有什么诀窍?
+淘宝开店交保证金和不交保证金的区别是什么?
+产品运营必看的5本书!你绝对不能错过!
+我在阿里长达三年的运营经验
+淘宝标题制作
+淘宝评价编写思路
+教你必备阿里店铺优化技巧
+淘宝店被差评怎么办?这样处理,让你高枕无忧!
+优化无线端,吸取自然搜索流量
+什么产品适合做私域流量?
+在家有手机就能做,情感类短视频,手把手教你,每天稳定200多
+抖音文案标题怎么写,抖音标题怎么写才能上热门
+短视频内容从不上热门?爆款脚本如何设计才能吸引人
+如何利用店铺会员进行二次营销
+流量、转化率结合布局,打造高效流量运营
+如何利用阿里店铺会员进行二次营销
+如何有效提升产品的复购率?
+好的产品是设计出来的还是运营出来的?
+新手宝妈做短视频,从0到1用了3个月,这个月收益26147
+淘宝推出光合平台要怎么入驻?
+淘宝店铺补单多久才有效果,告诉你一个技巧,快速爆发免费流量
+淘宝上新做好这3步,24小时内拿下新品标
+快手把抄袭者的粉丝直接搬运给原创者,原创们行动起来!
+新手想要做好短视频、自媒体的第一步,就是该如何定位?抓紧收藏
+利用自己的空余时间,用手机做短视频自媒体,每月收益5000多
+全球速卖通AliExpress开店指南,卖家请注意查收(上)
+淘宝店铺关了一段时间,重新开店没流量怎么办?
+淘宝店铺没流量怎么办?如何提升宝贝排名?
+不需要自己出镜,复制粘贴,操作过程不难,做短视频一天有257
+提高淘宝客服效率,开通自动功能小技巧
+小白入手短视频,做视频剪辑一天收益150元,月收入4000多
+阿里旗下速卖通和淘宝有什么区别?
+速卖通发货该选择什么物流渠道比较好?
+亚马逊针对刷单作出最大惩罚,这些流量你把握不住!交给私域来把握
+速卖通店铺注册流程详解,新手卖家请查收!
+从零开始做自媒体短视频,新手一样可以操作!每月稳定5000多
+做短视频,每个平台的收益方式都不同,特别是新手不要去踩坑啊!
+1688运营流量为王?你可能陷入了“锤子理论”的陷阱
+淘客日进800+秘诀,外卖CPS项目冷启动解读,四步教学保姆级教程,学生党宝妈必备
+直通车推广计划
+新手想做短视频自媒体,不知道从何下手?也不知道选择什么领域?
+新手在家做短视频自媒体,边追剧边赚钱,每天稳定收益200多
+宝妈新手小白,在家用手机做语录短视频,一周赚了2000多
+1688运营7×24H响应服务要不要开通?
+如何打造拼夕夕黄金标题
+淘宝直通车,测图测款实操全流程!
+全程复制粘贴,新手也可以做好短视频,每天可以稳定300多收益
+躺平电商干货不定时纯分享
+电商100单赚500跟10单赚500怎么选
+新手不知道如何开始?做短视频自媒体注意好这些点,你也能做好
+你做短视频自媒体播放量很好,为什么没有收益呢?你有没有犯错?
+新手做短视频自媒体,再也不用担心没有创作素材和创作工具了
+最安全的S单模式--流水池的搭建
+最近淘宝降权极为严格,有什么方法可以避免吗?
+做自媒体短视频,最简单的赚钱方法,就是做流量收益
+用好这5个小技巧,做自媒体短视频,可以让你的播放量翻10倍
+抖音小店评分发生重大变化?一招快速提升抖音小店评分!
+如何做小红书推广2个方案步骤!
+拆解唯品会企微私域运营的6大亮点,可直接复制,操盘手们赶紧学起来!
+抖音被封禁,证件如何被捞出来,方法在这里
+天猫超市收费标准
+淘宝开店卖特产怎么样?有市场吗?
+备战双十一:换季产品金九银十预备期布局和推广
+新上架的产品操作补单,搜索找不到自己产品,分享解决方法
+运营好一个抖音账号有什么技巧?
+淘宝是如何判定补单虚假交易降权的?注意这几个稽查维度
+亚马逊账号注意事项
+玩抖音还能赚钱?抖音你真的玩对了吗?
+如何学习淘宝摄影商品摄影静物摄影的布景设计和道具摆放?
+最权威版本!天猫官方教你怎样提高主图点击率(一)美妆部分
+最权威版本!天猫官方教你怎样提高主图点击率(三)食品母婴鞋类彩妆4大行业
+最权威版本!天猫官方教你怎样提高主图点击率(二)女装,电子电器,运动,家居4大行业
+给打算做淘宝女装的卖家的一些小小建议
+淘宝静物摄影网店拍摄入门指南(基础篇)
+如何打造抖音百万粉丝大号,这份运营秘籍送给你!
+如何运营抖音在抖音上赚钱?
+电商运营每天需要做哪些工作?我的运营日记分享
+四个在亚马逊工作后才知道SQL密技
+商品排名不够高没人知道,是因为你没有做过这个!
+店铺评分做不好,竟是这里出现了问题
+一个冷知识淘宝新店什么时候开车最好
+电商摄影师如何接单寻找客户
+淘宝又在严查补单,分享7个稽查维度,注意规避!
+淘宝补单怎么操作?具体如何?
+商品排名不够高该怎么做?打好基础让自己商品的排面上升的更快
+【亚马逊】大卖小卖是如何测款的
+看完你也能月入过万,直播带货入门四种方式,同行不会说的秘密!
+短视频变现原来并没有这么难,记住以下三点就行
+阿里店铺没访客没cheng交?13年阿里网店代运营公司告诉你,如何把店铺做起来
+阿里新规,发票规则修改,违规就扣分降权
+如何解决店铺根本问题
+新手小白做自媒体短视频,这几个禁忌领域不要碰,费力不讨好
+亚马逊欧洲站触发KYC审核
+抖音如何快速涨1000粉的小技巧,傻瓜式模仿,谁都可以
+抖音一天涨粉2万,只要动动手指,看完你也会
+新手做短视频必备的五个实用的工具,你知道吗?
+玩抖音搬运起号,一部手机一天多挣几百块,适合每个人
+3分钟教会你抖音账号涨粉,超适合新手小白,不要再错过了!!
+通过二次剪辑抖音小视频,轻松月入过万的方法!
+AMA订单处理与国际物流
+直播间没流量,学会这几个点,小白也能直播间流量暴增,干货满满
+阿里运营1688店铺的运营模式可以按照淘宝的方式来吗?
+抖音三天涨8000粉,零基础做抖音,学会这5点即可
+二次剪辑这样做,98%可避免搬运违规,绝对干货!
+分享一个抖音搬运技巧,7个视频涨粉7.9万
+Deal活动
+抖音搬运涨粉如何上热门,记住这三个野路子,
+抖音书单号另类变现玩法揭秘,学会轻松过万
+惜别公域流量红利,流量电商的终局在哪?
+抖音五大涨粉领域,哪一种学会都能月入过万,方法技巧全程分享
+抖音新手一天涨1.2万粉丝,他只用1天学会了这个方法
+抖音一天涨粉2万,只需轻松剪辑就行,看完你也会,
+店铺诊断
+抖音发视频如何上热门,1种方法立竿见影
+爆款视频,绝对干货,绝对真实,绝对犀利
+现在淘系是不是不能做了,淘宝和拼多多你更看好那个?

+ 1 - 0
Examples/Sample Tasks/关键词.CSV

@@ -0,0 +1 @@
+电商实战运营

+ 0 - 1
ExecuteStage/Readme.md

@@ -1,2 +1 @@
-pyinstaller -F --icon=favicon.ico ServiceWrapper_ExcuteStage.py
 出现permission denied请关闭杀毒软件
 出现permission denied请关闭杀毒软件

+ 44 - 39
ExecuteStage/ServiceWrapper_ExecuteStage.py → ExecuteStage/easyspider_executestage.py

@@ -65,7 +65,7 @@ def scrollDown(para, rt=""):
         if para["scrollType"] != 0 and para["scrollCount"] > 0:  # 控制屏幕向下滚动
         if para["scrollType"] != 0 and para["scrollCount"] > 0:  # 控制屏幕向下滚动
             for i in range(para["scrollCount"]):
             for i in range(para["scrollCount"]):
                 time.sleep(1)  # 下拉完等1秒
                 time.sleep(1)  # 下拉完等1秒
-                Log("下拉完等待1秒")
+                Log("Wait for 1 second after screen scrolling")
                 body = browser.find_element(By.CSS_SELECTOR, "body")
                 body = browser.find_element(By.CSS_SELECTOR, "body")
                 if para["scrollType"] == 1:
                 if para["scrollType"] == 1:
                     body.send_keys(Keys.PGDN)
                     body.send_keys(Keys.PGDN)
@@ -78,7 +78,7 @@ def scrollDown(para, rt=""):
         if para["scrollType"] != 0 and para["scrollCount"] > 0:  # 控制屏幕向下滚动
         if para["scrollType"] != 0 and para["scrollCount"] > 0:  # 控制屏幕向下滚动
             for i in range(para["scrollCount"]):
             for i in range(para["scrollCount"]):
                 time.sleep(1)  # 下拉完等1秒
                 time.sleep(1)  # 下拉完等1秒
-                Log("下拉完等待1秒")
+                Log("Wait for 1 second after screen scrolling")
                 body = browser.find_element(By.CSS_SELECTOR, "body")
                 body = browser.find_element(By.CSS_SELECTOR, "body")
                 if para["scrollType"] == 1:
                 if para["scrollType"] == 1:
                     body.send_keys(Keys.PGDN)
                     body.send_keys(Keys.PGDN)
@@ -124,12 +124,12 @@ def excuteNode(nodeId, loopValue="", clickPath="", index=0):
         if node["parameters"]["wait"] > 1:
         if node["parameters"]["wait"] > 1:
             waitTime = node["parameters"]["wait"]
             waitTime = node["parameters"]["wait"]
         time.sleep(waitTime)
         time.sleep(waitTime)
-        Log("Node执行完后等待:", waitTime)
+        Log("Wait seconds after node executing: ", waitTime)
 
 
 
 
 # 对判断条件的处理
 # 对判断条件的处理
 def judgeExcute(node, loopElement, clickPath="", index=0):
 def judgeExcute(node, loopElement, clickPath="", index=0):
-    rt = Time("条件判断")
+    rt = Time("IF Condition")
     global bodyText  # 引入bodyText
     global bodyText  # 引入bodyText
     excuteBranchId = 0  # 要执行的BranchId
     excuteBranchId = 0  # 要执行的BranchId
     for i in node["sequence"]:
     for i in node["sequence"]:
@@ -173,7 +173,8 @@ def judgeExcute(node, loopElement, clickPath="", index=0):
 # 对循环的处理
 # 对循环的处理
 def loopExcute(node, loopValue, clickPath="", index=0):
 def loopExcute(node, loopValue, clickPath="", index=0):
     time.sleep(0.1)  # 第一次执行循环的时候强制等待1秒
     time.sleep(0.1)  # 第一次执行循环的时候强制等待1秒
-    Log("循环执行前等待0.1秒")
+    # Log("循环执行前等待0.1秒")
+    Log("Wait 0.1 second before loop")
     global history
     global history
     thisHandle = browser.current_window_handle  # 记录本次循环内的标签页的ID
     thisHandle = browser.current_window_handle  # 记录本次循环内的标签页的ID
     thisHistoryLength = browser.execute_script(
     thisHistoryLength = browser.execute_script(
@@ -216,8 +217,8 @@ def loopExcute(node, loopValue, clickPath="", index=0):
                     break  # 如果找不到元素,退出循环
                     break  # 如果找不到元素,退出循环
 
 
             count = count + 1
             count = count + 1
-            Log("页数:", count)
-            recordLog("页数:" + str(count))
+            Log("Page: ", count)
+            recordLog("Page:" + str(count))
             # print(node["parameters"]["exitCount"], "-------")
             # print(node["parameters"]["exitCount"], "-------")
             if node["parameters"]["exitCount"] == count:  # 如果达到设置的退出循环条件的话
             if node["parameters"]["exitCount"] == count:  # 如果达到设置的退出循环条件的话
                 break
                 break
@@ -245,7 +246,9 @@ def loopExcute(node, loopValue, clickPath="", index=0):
                         time.sleep(node["parameters"]["historyWait"])
                         time.sleep(node["parameters"]["historyWait"])
                     else:
                     else:
                         time.sleep(2)
                         time.sleep(2)
-                    Log("切换历史记录等待2秒或者:", node["parameters"]["historyWait"])
+                    # 切换历史记录等待2秒或者:
+                    Log("Change history back time or:",
+                        node["parameters"]["historyWait"])
                     browser.execute_script('window.stop()')
                     browser.execute_script('window.stop()')
         except NoSuchElementException:
         except NoSuchElementException:
             Log("pathNotFound: ", node["parameters"]["xpath"])
             Log("pathNotFound: ", node["parameters"]["xpath"])
@@ -275,7 +278,8 @@ def loopExcute(node, loopValue, clickPath="", index=0):
                         time.sleep(node["parameters"]["historyWait"])
                         time.sleep(node["parameters"]["historyWait"])
                     else:
                     else:
                         time.sleep(2)
                         time.sleep(2)
-                    Log("切换历史记录等待2秒或者:", node["parameters"]["historyWait"])
+                    Log("Change history back time or:",
+                        node["parameters"]["historyWait"])
                     browser.execute_script('window.stop()')
                     browser.execute_script('window.stop()')
             except NoSuchElementException:
             except NoSuchElementException:
                 Log("pathNotFound: ", path)
                 Log("pathNotFound: ", path)
@@ -360,7 +364,7 @@ def openPage(para, loopValue):
             recordLog('time out after 10 seconds when getting body text:: ' + url)
             recordLog('time out after 10 seconds when getting body text:: ' + url)
             browser.execute_script('window.stop()')
             browser.execute_script('window.stop()')
             time.sleep(1)
             time.sleep(1)
-            Log("获得bodytext等待1秒")
+            Log("Need to wait 1 second to get body text")
             # 再执行一遍
             # 再执行一遍
             bodyText = browser.find_element(By.CSS_SELECTOR, "body").text
             bodyText = browser.find_element(By.CSS_SELECTOR, "body").text
             rt.end()
             rt.end()
@@ -378,13 +382,15 @@ def openPage(para, loopValue):
 # 键盘输入事件
 # 键盘输入事件
 def inputInfo(para, loopValue):
 def inputInfo(para, loopValue):
     time.sleep(1)  # 输入之前等待1秒
     time.sleep(1)  # 输入之前等待1秒
-    Log("输入前等待1秒")
-    rt = Time("输入文字")
+    Log("Wait 1 second before input")
+    rt = Time("Input Text")
     try:
     try:
         textbox = browser.find_element(By.XPATH, para["xpath"])
         textbox = browser.find_element(By.XPATH, para["xpath"])
     except:
     except:
-        Log("找不到输入框元素:" + para["xpath"] + "请尝试执行前等待")
-        recordLog("找不到输入框元素:" + para["xpath"] + "请尝试执行前等待")
+        Log("Cannot find input box element:" +
+            para["xpath"] + "Please try to set the wait time before executing this operation")
+        recordLog("Cannot find input box element:" +
+                  para["xpath"] + "Please try to set the wait time before executing this operation")
         exit()
         exit()
     textbox.send_keys(Keys.CONTROL, 'a')
     textbox.send_keys(Keys.CONTROL, 'a')
     textbox.send_keys(Keys.BACKSPACE)
     textbox.send_keys(Keys.BACKSPACE)
@@ -401,8 +407,8 @@ def inputInfo(para, loopValue):
 def clickElement(para, loopElement=None, clickPath="", index=0):
 def clickElement(para, loopElement=None, clickPath="", index=0):
     global history
     global history
     time.sleep(0.1)  # 点击之前等待1秒
     time.sleep(0.1)  # 点击之前等待1秒
-    rt = Time("点击元素")
-    Log("点击之前等待1秒")
+    rt = Time("Click Element")
+    Log("Wait 1 second before clicking element")
     if para["useLoop"]:  # 使用循环的情况下,传入的clickPath就是实际的xpath
     if para["useLoop"]:  # 使用循环的情况下,传入的clickPath就是实际的xpath
         path = clickPath
         path = clickPath
     else:
     else:
@@ -422,7 +428,7 @@ def clickElement(para, loopElement=None, clickPath="", index=0):
         Log(e)
         Log(e)
         recordLog(str(e))
         recordLog(str(e))
     time.sleep(0.5)  # 点击之后等半秒
     time.sleep(0.5)  # 点击之后等半秒
-    Log("点击之后等待0.5秒")
+    Log("Wait 0.5 second after clicking element")
     time.sleep(random.uniform(1, 10))  # 生成一个a到b的小数等待时间
     time.sleep(random.uniform(1, 10))  # 生成一个a到b的小数等待时间
     if tempHandleNum != len(browser.window_handles):  # 如果有新标签页的行为发生
     if tempHandleNum != len(browser.window_handles):  # 如果有新标签页的行为发生
         browser.switch_to.window(browser.window_handles[-1])  # 跳转到新的标签页
         browser.switch_to.window(browser.window_handles[-1])  # 跳转到新的标签页
@@ -451,7 +457,7 @@ def clickElement(para, loopElement=None, clickPath="", index=0):
             recordLog('time out after 10 seconds when getting body text')
             recordLog('time out after 10 seconds when getting body text')
             browser.execute_script('window.stop()')
             browser.execute_script('window.stop()')
             time.sleep(1)
             time.sleep(1)
-            Log("bodytext等待1秒")
+            Log("wait one second after get body text")
             # 再执行一遍
             # 再执行一遍
             bodyText = browser.find_element(By.CSS_SELECTOR, "body").text
             bodyText = browser.find_element(By.CSS_SELECTOR, "body").text
             rt.end()
             rt.end()
@@ -465,8 +471,8 @@ def clickElement(para, loopElement=None, clickPath="", index=0):
 def getData(para, loopElement, isInLoop=True, parentPath="", index=0):
 def getData(para, loopElement, isInLoop=True, parentPath="", index=0):
     if not isInLoop and para["wait"] == 0:
     if not isInLoop and para["wait"] == 0:
         time.sleep(1)  # 如果提取数据字段不在循环内而且设置的等待时间为0,默认等待1秒
         time.sleep(1)  # 如果提取数据字段不在循环内而且设置的等待时间为0,默认等待1秒
-        Log("提取数据等待1秒")
-    rt = Time("提取数据")
+        Log("Wait 1 second before extracting data")
+    rt = Time("Extract Data")
     for p in para["paras"]:
     for p in para["paras"]:
         content = ""
         content = ""
         try:
         try:
@@ -644,7 +650,7 @@ def isnull(s):
 def clean():
 def clean():
     global saveName, log, OUTPUT, browser, SAVED
     global saveName, log, OUTPUT, browser, SAVED
     if not SAVED:
     if not SAVED:
-        print('清理环境保存数据')
+        print('Clear Environment and save data')
         with open("Data/"+saveName + '_log.txt', 'w', encoding='utf-8-sig') as file_obj:
         with open("Data/"+saveName + '_log.txt', 'w', encoding='utf-8-sig') as file_obj:
             file_obj.write(log)
             file_obj.write(log)
             file_obj.close()
             file_obj.close()
@@ -661,18 +667,18 @@ if __name__ == '__main__':
     options = Options()
     options = Options()
     exe_path = "chromedriver.exe"
     exe_path = "chromedriver.exe"
     option = webdriver.ChromeOptions()
     option = webdriver.ChromeOptions()
-    if os.path.exists(os.getcwd()+"/ServiceWrapper"):
-        print("Finding chromedriver in ServiceWrapper",
-              os.getcwd()+"/ServiceWrapper")
-        options.binary_location = "ServiceWrapper/Chrome/chrome.exe"  # 指定chrome位置
-        exe_path = "ServiceWrapper/Chrome/chromedriver.exe"
+    if os.path.exists(os.getcwd()+"/EasySpider"):
+        print("Finding chromedriver in EasySpider",
+              os.getcwd()+"/EasySpider")
+        options.binary_location = "EasySpider/Chrome/chrome.exe"  # 指定chrome位置
+        exe_path = "EasySpider/Chrome/chromedriver.exe"
     elif os.path.exists(os.getcwd()+"/Debug"):
     elif os.path.exists(os.getcwd()+"/Debug"):
-        print("Finding chromedriver in ServiceWrapper",
+        print("Finding chromedriver in EasySpider",
               os.getcwd()+"/Debug")
               os.getcwd()+"/Debug")
         options.binary_location = "Debug/Chrome/chrome.exe"  # 指定chrome位置
         options.binary_location = "Debug/Chrome/chrome.exe"  # 指定chrome位置
         exe_path = "Debug/Chrome/chromedriver.exe"
         exe_path = "Debug/Chrome/chromedriver.exe"
     elif os.getcwd().find("ExecuteStage") >= 0:  # 如果直接执行
     elif os.getcwd().find("ExecuteStage") >= 0:  # 如果直接执行
-        print("Finding chromedriver in ServiceWrapper",
+        print("Finding chromedriver in EasySpider",
               os.getcwd()+"/Debug")
               os.getcwd()+"/Debug")
         option.binary_location = "./Application/chrome.exe"  # 指定chrome位置
         option.binary_location = "./Application/chrome.exe"  # 指定chrome位置
         # option.binary_location = "C:\\Users\\q9823\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"
         # option.binary_location = "C:\\Users\\q9823\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"
@@ -693,10 +699,10 @@ if __name__ == '__main__':
     # 2. User Profile文件夹的路径是:C:\Users\用户名\AppData\Local\Google\Chrome\User Data不要加Default
     # 2. User Profile文件夹的路径是:C:\Users\用户名\AppData\Local\Google\Chrome\User Data不要加Default
     # 3. 就算User Profile相同,chrome版本不同所存储的cookie信息也不同,也不能爬
     # 3. 就算User Profile相同,chrome版本不同所存储的cookie信息也不同,也不能爬
     # 4. TMALL如果一直弹出验证码,而且无法通过验证,那么需要在其他浏览器上用
     # 4. TMALL如果一直弹出验证码,而且无法通过验证,那么需要在其他浏览器上用
-
-    option.add_argument(
-        '--user-data-dir=C:\\Users\\q9823\\AppData\\Local\\Google\\Chrome\\User Data')  # TMALL 反扒
-    option.add_argument("--profile-directory=Default")
+    if len(sys.argv) > 5:
+        userdataPath = sys.argv[5]
+        option.add_argument(f'--user-data-dir={userdataPath}')  # TMALL 反扒
+        option.add_argument("--profile-directory=Default")
     # options.add_argument(
     # options.add_argument(
     #     '--user-data-dir=C:\\Users\\q9823\\AppData\\Local\\Google\\Chrome\\User Data')  # TMALL 反扒
     #     '--user-data-dir=C:\\Users\\q9823\\AppData\\Local\\Google\\Chrome\\User Data')  # TMALL 反扒
     option.add_argument(
     option.add_argument(
@@ -713,16 +719,16 @@ if __name__ == '__main__':
     else:
     else:
         id = 7  # 设置默认值
         id = 7  # 设置默认值
     print("id:", id)
     print("id:", id)
-    if len(sys.argv) > 2:
-        saveName = "task_" + str(id) + "_" + sys.argv[2]  # 保存文件的名字
+    if len(sys.argv) > 3:
+        saveName = "task_" + str(id) + "_" + sys.argv[3]  # 保存文件的名字
     else:
     else:
         saveName = "task_" + str(id) + "_" + \
         saveName = "task_" + str(id) + "_" + \
             str(random.randint(0, 999999999))  # 保存文件的名字
             str(random.randint(0, 999999999))  # 保存文件的名字
     print("saveName is:", saveName, sys.argv, len(sys.argv) > 2)
     print("saveName is:", saveName, sys.argv, len(sys.argv) > 2)
-    if len(sys.argv) > 3:
-        backEndAddress = sys.argv[3]
+    if len(sys.argv) > 2:
+        backEndAddress = sys.argv[2]
     else:
     else:
-        backEndAddress = "http://servicewrapper.naibo.wang"
+        backEndAddress = "https://servicewrapper.systems"
 
 
     # TODO when transfer to electron, use commandline-config
     # TODO when transfer to electron, use commandline-config
     config = {
     config = {
@@ -738,7 +744,6 @@ if __name__ == '__main__':
         print("remote")
         print("remote")
         content = requests.get(
         content = requests.get(
             backEndAddress + "/backEnd/queryTask?id=" + str(id))
             backEndAddress + "/backEnd/queryTask?id=" + str(id))
-        service = json.loads(content.text)
     else:
     else:
         print("local")
         print("local")
         with open("tasks/" + str(id) + ".json", 'r', encoding='utf-8') as f:
         with open("tasks/" + str(id) + ".json", 'r', encoding='utf-8') as f:
@@ -764,7 +769,7 @@ if __name__ == '__main__':
     for i in range(len(links)):
     for i in range(len(links)):
         excuteNode(0)
         excuteNode(0)
         urlId = urlId + 1
         urlId = urlId + 1
-    print("执行完成!")
+    print("Done!")
     recordLog("Done!")
     recordLog("Done!")
     # dataPath = os.path.abspath(os.path.join(os.getcwd(), "../Data"))
     # dataPath = os.path.abspath(os.path.join(os.getcwd(), "../Data"))
     with open("Data/"+saveName + '_log.txt', 'w', encoding='utf-8-sig') as file_obj:
     with open("Data/"+saveName + '_log.txt', 'w', encoding='utf-8-sig') as file_obj:

+ 3 - 0
ExecuteStage/generateEXE.cmd

@@ -0,0 +1,3 @@
+rmdir /s build
+rmdir /s dist
+pyinstaller -F --icon=favicon.ico easyspider_executestage.py

+ 0 - 1
ExecuteStage/packageCommand.cmd

@@ -1 +0,0 @@
-pyinstaller -F --icon=favicon.ico .\ServiceWrapper_ExecuteStage.py

+ 0 - 4
ExecuteStage/packageCommand.md

@@ -1,4 +0,0 @@
-G:\venv\Scripts\activate.bat
-cd D:\我的文档\浙江大学\项目\高分项目\服务包装\服务包装手动版\servicewrapper-artificial-version\ExcuteStage
-D:
-pyinstaller -F --icon=favicon.ico ServiceWrapper_ExcuteStage.py

+ 0 - 0
Extension/ServiceWrapper.crx → Extension/CN.crx


+ 4 - 4
Extension/ServiceWrapper/_locales/en/messages.json → Extension/EasySpider/_locales/en/messages.json

@@ -1,18 +1,18 @@
 {
 {
   "appName": {
   "appName": {
-    "message": "servicewrapper",
+    "message": "EasySpider",
     "description": "The name of the application"
     "description": "The name of the application"
   },
   },
   "appShortName": {
   "appShortName": {
-    "message": "fwbz",
+    "message": "es",
     "description": "The short_name (maximum of 12 characters recommended) is a short version of the app's name."
     "description": "The short_name (maximum of 12 characters recommended) is a short version of the app's name."
   },
   },
   "appDescription": {
   "appDescription": {
-    "message": "service wrapper",
+    "message": "EasySpider",
     "description": "The description of the application"
     "description": "The description of the application"
   },
   },
   "browserActionTitle": {
   "browserActionTitle": {
-    "message": "servicewrapper",
+    "message": "EasySpider",
     "description": "The title of the browser action button"
     "description": "The title of the browser action button"
   }
   }
 }
 }

+ 0 - 0
Extension/ServiceWrapper/images/api_thumb_450.jpg → Extension/EasySpider/images/api_thumb_450.jpg


+ 0 - 0
Extension/ServiceWrapper/images/icon-128.png → Extension/EasySpider/images/icon-128.png


+ 0 - 0
Extension/ServiceWrapper/images/icon-16.png → Extension/EasySpider/images/icon-16.png


+ 0 - 0
Extension/ServiceWrapper/images/icon-19.png → Extension/EasySpider/images/icon-19.png


+ 0 - 0
Extension/ServiceWrapper/images/icon-38.png → Extension/EasySpider/images/icon-38.png


+ 0 - 0
Extension/ServiceWrapper/manifest.json → Extension/EasySpider/manifest.json


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio