前端 抓取淘宝的产品 上架到拼多多

这里只是简单实现,因为时间比较急。

主要解决的问题是,淘宝的那款产品分类很多,拼多多一个一个添加分类太累了,受不了。

还有就是拼多多要求每个分类都必须有图片,这也是坑的一笔。

主要是js实现

抓取淘宝的分类

得到淘宝的分类数组:

        var arr = [];
        $("ul.J_TSaleProp li a span").each(function (index) {
            var item = $("ul.J_TSaleProp li a span")[index];
            var str = $(item).text();
            arr.push(str);
        });
        console.log(arr);
        console.log(JSON.stringify(arr));

得到有赞的分类数组:

有赞的抓的html是这个节点:<div class="van-sku-group-container">

        var arr = [];
        $(".van-sku-row__item-name").each(function (index) {
            var item = $(".van-sku-row__item-name")[index];
            var str = $(item).text();
            arr.push(str);
        });
        console.log(arr);
        console.log(JSON.stringify(arr));

拼多多自动增加分类:

        //自动增加分类
        window.myArr = ["卡诗奥丽柔顺洗发水", "卡诗滋养恒护洗发水1号", "卡诗 柔韧芯机洗发水", "卡诗(新款纤细)根源特护洗发", "卡诗 柔韧芯机护发素", "卡诗强韧修护护发素", "卡诗强韧修护洗发水", "卡诗男士纤细发丝洗发水", "卡诗新款去屑净化洗发水", "卡诗舒缓滋润洗发水", "卡诗黛丝逸柔洗发水", "卡诗黛丝逸柔护发素", "卡诗绚亮深度护色洗发水", "卡诗赋活洗发水新老随机", "卡诗滋养恒护蛋白护发素新老随机", "卡诗双重功能洗发水", "卡诗头皮舒缓洗(海外专柜版)", "卡诗黑钻凝时洗发水", "卡诗滋养恒护洗发水2号新老随机"];
        window.myArrIndex = 0;

        function fn3() {
            setInterval(function () {
                if (window.myArrIndex > window.myArr.length - 1) {
                    return;
                }
                console.log(window.myArrIndex);
                var div_goods = document.getElementsByClassName("goods-spec-row-box")[0].getElementsByClassName("goods-spec-row-btn")[0];
                var input = div_goods.getElementsByClassName("mui-form-group-input")[0];
                var btn = div_goods.getElementsByTagName("a")[0];
                div_goods.getElementsByClassName("mui-form-group-input")[0].focus();
                setTimeout(function () {
                    var strValue = window.myArr[window.myArrIndex];
                    div_goods.getElementsByClassName("mui-form-group-input")[0].value = strValue;
                    window.myArrIndex = window.myArrIndex + 1;
                    setTimeout(function () {
                        div_goods.getElementsByClassName("mui-form-group-input")[0].blur();
                    }, 500);
                }, 500);
                setTimeout(function () {
                    btn.click();
                }, 2000);
            }, 3000);
        }

在拼多多网页的实现思路:

在控制台动态添加html到网页,html内容:动态新增一个按钮,跟按钮绑定事件,事件为每隔几秒动态增加一个分类。

            window.myArr = ["卡诗奥丽柔顺洗发水", "卡诗滋养恒护洗发水1号", "卡诗 柔韧芯机洗发水", "卡诗(新款纤细)根源特护洗发", "卡诗 柔韧芯机护发素", "卡诗强韧修护护发素", "卡诗强韧修护洗发水", "卡诗男士纤细发丝洗发水", "卡诗新款去屑净化洗发水", "卡诗舒缓滋润洗发水", "卡诗黛丝逸柔洗发水", "卡诗黛丝逸柔护发素", "卡诗绚亮深度护色洗发水", "卡诗赋活洗发水新老随机", "卡诗滋养恒护蛋白护发素新老随机", "卡诗双重功能洗发水", "卡诗头皮舒缓洗(海外专柜版)", "卡诗黑钻凝时洗发水", "卡诗滋养恒护洗发水2号新老随机"];
            window.myArrIndex = 0;

            var strClick = "";
            strClick += ‘setInterval(function () { if (window.myArrIndex > window.myArr.length - 1) { return; } console.log(window.myArrIndex); var div_goods = document.getElementsByClassName("goods-spec-row-box")[0].getElementsByClassName("goods-spec-row-btn")[0]; var input = div_goods.getElementsByClassName("mui-form-group-input")[0]; var btn = div_goods.getElementsByTagName("a")[0]; div_goods.getElementsByClassName("mui-form-group-input")[0].focus(); setTimeout(function () { var strValue = window.myArr[window.myArrIndex]; div_goods.getElementsByClassName("mui-form-group-input")[0].value = strValue; window.myArrIndex = window.myArrIndex + 1; setTimeout(function () { div_goods.getElementsByClassName("mui-form-group-input")[0].blur(); }, 500); }, 500); setTimeout(function () { btn.click(); }, 2000); }, 3000);‘;

            var div = document.createElement("div");
            div.setAttribute(‘style‘, ‘background-color:red;width:50px;height:50px;position:absolute;left:10px;top:1500px‘);

            var input = document.createElement("input");
            input.setAttribute(‘type‘, ‘button‘);
            input.setAttribute(‘onclick‘, strClick);
            input.value = "click";
            div.appendChild(input);

            document.body.appendChild(div);

淘宝下载分类图片,图片名称为分类的名称:

//下载图片的方法

        //https://www.jianshu.com/p/dfe9c351b898
        function downloadImgByBlob(url, fileName) {
            var img = new Image();
            img.onload = function () {
                var canvas = document.createElement(‘canvas‘);
                canvas.width = img.width;
                canvas.height = img.height;
                var ctx = canvas.getContext(‘2d‘);
                // 将img中的内容画到画布上
                ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
                // 将画布内容转换为Blob
                canvas.toBlob((blob) => {
                    // blob转为同源url
                    var blobUrl = window.URL.createObjectURL(blob);
                    // 创建a链接
                    var a = document.createElement(‘a‘);
                    a.href = blobUrl;
                    a.download = fileName;
                    // 触发a链接点击事件,浏览器开始下载文件
                    a.click();
                });
            };
            img.src = url;
            // 必须设置,否则canvas中的内容无法转换为blob
            img.setAttribute(‘crossOrigin‘, ‘Anonymous‘);
        }

实现的代码

        var arr2 = [];
        var index2 = 0;

        //取出所有的分类 存到数组中
        $("ul.J_TSaleProp li a span").each(function (index) {
            var item = $("ul.J_TSaleProp li a span")[index];
            var name = $(item).text();
            var url = $(item).parent().css("background-image");
            url = url.replace(‘url("‘, ‘‘).replace(‘")‘, ‘‘);
            arr2.push({ url: url, name: name });
        });

        //点击一下按钮 下载一张图片
        function fn4() {
            if (index2 > (arr2.length - 1)) {
                return;
            }
            var item = arr2[index2];
            var url = item.url;
            url = url.replace("_30x30.jpg", "");
            downloadImgByBlob(url, item.name + ".jpg");
            index2++;
        }

原文地址:https://www.cnblogs.com/guxingy/p/12181598.html

时间: 2024-11-13 08:10:17

前端 抓取淘宝的产品 上架到拼多多的相关文章

Python爬虫实战四之抓取淘宝MM照片

福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 最新动态 更新时间:2015/8/2 最近好多读者反映代码已经不能用了,原因是淘宝索引页的MM链接改了.网站改版了,URL的索引已经和之前的不一样了,之前可以直接跳转到每个MM的个性域名,现在中间加了一个跳转页,本以为可以通过这个页面然后跳转到原来的个性域名,而经过一番折腾发现,这个跳转页中的内容是JS动态生成的,所以不能用Urllib库来直接抓取了,本篇就只提供学习思路,代码不能继续用了. 之后博主会利用其它方

芝麻HTTP:Python爬虫实战之抓取淘宝MM照片

本篇目标 1.抓取淘宝MM的姓名,头像,年龄 2.抓取每一个MM的资料简介以及写真图片 3.把每一个MM的写真图片按照文件夹保存到本地 4.熟悉文件保存的过程 1.URL的格式 在这里我们用到的URL是 http://mm.taobao.com/json/request_top_list.htm?page=1,问号前面是基地址,后面的参数page是代表第几页,可以随意更换地址.点击开之后,会发现有一些淘宝MM的简介,并附有超链接链接到个人详情页面. 我们需要抓取本页面的头像地址,MM姓名,MM年

selenium抓取淘宝数据报错:warnings.warn(&#39;Selenium support for PhantomJS has been deprecated, please use headless

ssh://[email protected]:22/root/anaconda3/bin/python3 -u /www/python3/maoyantop100/meishi_selenium.py /root/anaconda3/lib/python3.6/site-packages/selenium/webdriver/phantomjs/webdriver.py:49: UserWarning: Selenium support for PhantomJS has been depre

【Python】抓取淘宝数据库月报,发送邮件,本地存档,保存元信息

用途 定期抓取淘宝数据库月报 发送邮件,保存到本地,最好是git中 发送元数据到mysql中,后期可以做成接口集成到运维平台中,便于查询 使用方式 # 下载(必须) cd ~ && git clone https://github.com/naughtyGitCat/spider_taobao_mysql.git # 修改配置(必须) vim config.py # 安装crontab(可选) "0 10 8 * * source ~/.bashrc && pyt

使用selenium模拟浏览器抓取淘宝信息

通过Selenium模拟浏览器抓取淘宝商品美食信息,并存储到MongoDB数据库中. from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdri

python爬取ajax动态生成的数据 以抓取淘宝评论为例子

在学习python的时候,一定会遇到网站内容是通过ajax动态请求.异步刷新生成的json数据的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据. 至于读取静态网页内容的方式,有兴趣的可以查看博客内容. 这里我们以爬取淘宝评论为例子讲解一下如何去做到的. 这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url) 二 获取该ajax请求返回的json数据 三 使用python解析json数据 四

用PHP抓取淘宝商品的用户晒单评论+图片实例

为什么想起来做这个功能?是因为前段时间在做一个淘客网站的时候,想到是否能抓取到淘宝商品的买家秀呢?经过一番折腾发现,淘宝商品用户评价信息是通过Ajax来调取的,通过嗅探网址发现,评论数据的请求接口是: https://rate.tmall.com/list_detail_rate.htm?itemId=524394294771&spuId=341564036&sellerId=100414600&order=3&currentPage=1&append=0&

selenium抓取淘宝商品

我们知道,javascript动态渲染页面不止ajax这一种,有些网站可能整个都是由javascript渲染后生成的,还有些网站,比如淘宝,它虽然有ajax请求,但其中加入了很多复杂的参数,需要耗费大量时间才能找出规律,这时候,我们就可以用selenium,它可以直接模仿浏览器运行,并且抓取在运行时的源码,不用管ajax那些复杂的数,此次我们使用一种无界面的浏览器PhantomJS,它可以做到不用打开浏览器就可以运行,另外,需要正确安装好Selenium库. #我们需要用到MongoDB数据库,

selenium+chrome抓取淘宝宝贝-崔庆才思路

站点分析 源码及遇到的问题 在搜索时,会跳转到登录界面 step1:干起来! 先取cookie step2:载入cookie step3:放飞自我 关于phantomJS浏览器的问题 源码 站点分析 看了交互,好复杂 看了下Ajax,好复杂 看了下其他内容,看不懂... 所以,没啥好分析的,直接上selenium吧 源码及遇到的问题 在搜索时,会跳转到登录界面 这个没有办法,是淘宝的反爬虫机制. 因为通过selenium webdriver调用的浏览器会有很多异于正常浏览器的参数,具体生成了啥参