闲鱼爬虫闲鱼商品数据爬虫

时间:2024-04-17 09:36:55

闲鱼爬虫源码淘宝闲鱼商品爬虫源码,可以爬取闲鱼商品的商品内容,图片,价格,出售人信息等等

运行本程序之后可以抓取手机闲鱼App中的商品数据,可以随意按照自定义的关键词抓取自己想要的商品数据。包含商品的详细信息,抓取入库了。可自行筛选符合自己要求的商品数据,方便快捷精准买到性价比高的二手商品。

爬到的数据样例:

[
    {
        "title":"大疆Mavic Air2畅飞套装,带换新,截止日期6月3号, 机器去年6月多购买,如图所示,所有配件全在,盒子扔了,有收纳包,自己又单独买了图二配件,包括增高架,抛投器,平板支架,机器完美无划痕,可以看我录的视频,遥控器也是完 美无划痕,电池循环次数如图所示,不议价不议价不议价,这个价格懂得都懂,所有信...",
        "area":"北京",
        "itemId":"642422473526",
        "picUrl":"http://img.alicdn.com/bao/uploaded/i4/O1CN011bIER51lP1kbfmtQ2_!!0-fleamarket.jpg",
        "oriPrice":"",
        "tagname":"极好/2人想要",
        "soldPrice":"5280",
        "userNick":"绣巷属新鲜的木瓜",
        "itemType":"detailCommonBuy"
    },
    {
        "title":"大疆御air1,全新机身加一块全新电池,个人闲置,昨天换新, 外加3块正常工作电池,一共4块电池,电池管家一套,机翼 叶片副厂两套,原厂两套,保护罩一套未拍上。现低价出售,功能一切正常,全新机器。不刀不刀,看到即是实价,讲价者勿扰。买到就是赚到。售出无质量问题不退不换。运费到付,当天确认收货退回运费。",
        "area":"山东",
        "itemId":"643106979306",
        "picUrl":"http://img.alicdn.com/bao/uploaded/i4/O1CN01OV1xCv1R3EaZkzWXJ_!!0-fleamarket.jpg",
        "oriPrice":"",
        "tagname":"极好/7人想要",
        "soldPrice":"3560",
        "userNick":"RuiSeptember",
        "itemType":"detailCommonBuy"
    }
]

  

数据简单应用效果:做成自己的网页,按自己的条件重新搜索数据。标注描述中的关键字,按价格最低排序,很容易就能找到自己想要的商品。直接从网页上点击跳转到闲鱼App打开详情页

测试地址:http://stock.changu.net/xianyu/vue

 

源码介绍地址:http://changu.net/xianyu.html

核心hook代码

闲鱼商品搜索接口:
{"apiName":"mtop.taobao.idle.search.glue","apiVersion":"8.0","needJsonReq":false,"needLogin":false,"needWua":false}
请求参数:
{
    "activeSearch":false,
    "bizFrom":"home",
    "forceUseInputKeyword":false,
    "forceUseTppRepair":false,
    "fromFilter":false,
    "fromKits":false,
    "fromLeaf":false,
    "fromShade":false,
    "fromSuggest":false,
    "gps":"39.925586,116.194936",
    "keyword":"你的搜索关键词",
    "latitude":"39.925586",
    "longitude":"116.194936",
    "pageNumber":1,
    "resultListLastIndex":0,
    "rowsPerPage":10,
    "searchReqFromActivatePagePart":"searchButton",
    "searchReqFromPage":"xyHome",
    "searchTabType":"SEARCH_TAB_MAIN",
    "searchType":"common",
    "shadeBucketNum":1,
    "suggestBucketNum":-1
}

  返回结果

{
    "data":{
        "item":{
            "main":{
                "clickParam":{
                    "arg1":"Item",
                    "args":{
                        "biz_type":"item",
                        "bucketid":"21",
                        "cCatId":"126856567",
                        "card_type":"idlefish_search_card_item_waterfall",
                        "catId":"50023914",
                        "id":"642417625236",
                        "index":"2",
                        "item_id":"642417625236",
                        "item_type":"goods",
                        "labelBucketId":"3",
                        "page":"7",
                        "pageSize":"10",
                        "position":"78",
                        "q":"%E5%A4%A7%E7%96%86air2",
                        "rn":"b9422f7d85c2674cfca17c4bbe82b2ad",
                        "search_from_page":"xyHome",
                        "search_id":"6235ddeb301fb829c4d99c1e028d88b0",
                        "spm":"a2170.8011571.1.78",
                        "tag":"wantnum-9",
                        "tagname":"9人想要",
                        "tbCatId":"125166009",
                        "type":"1",
                        "unShowLabelParams":"{"36":"轻微使用痕迹","38":"DJI/大疆","41":"¥7407"}",
                        "wantNum":"9"
                    },
                    "bizType":"item",
                    "page":"Page_xySearchResult"
                },
                "exContent":{
                    "area":"浙江",
                    "detailParams":{
                        "isVideo":"false",
                        "itemId":"642417625236",
                        "itemType":"detailCommonBuy",
                        "picHeight":"1920",
                        "picWidth":"1080",
                        "soldPrice":"5300",
                        "title":"2月份购买的大疆御air2无人机随心换加畅飞套装。九成新,三 块电池均循环二十次左右。地点在浙江义乌,有同城者线下见面交易。",
                        "userNick":"宁小城踢足球",
                        "want":"9人想要"
                    },
                    "isAliMaMaAD":"false",
                    "isAuction":"false",
                    "itemId":"642417625236",
                    "oriPrice":"¥7407",
                    "picHeight":"218.66666666666666",
                    "picUrl":"http://img.alicdn.com/bao/uploaded/i3/O1CN01gdnVB41n2FHTKtspd_!!0-fleamarket.jpg",
                    "picWidth":"164.0",
                    "placeholderColor":"#F7F7F7",
                    "price":[
                        {
                            "bold":"true",
                            "marginBottom":"4",
                            "text":"¥",
                            "textColor":"#ff4444",
                            "textSize":"12.0"
                        },
                        {
                            "bold":"true",
                            "marginBottom":"2",
                            "text":"5300",
                            "textColor":"#ff4444",
                            "textSize":"18.0"
                        }
                    ],
                    "priceTag":[
                        {
                            "data":{
                                "fontWeight":"w400",
                                "lineHeight":"1.6",
                                "text":"9人想要",
                                "textColor":"#FFA3A3A3",
                                "textSize":"10.0"
                            },
                            "type":"Text"
                        }
                    ],
                    "richTitle":[
                        {
                            "data":{
                                "fontWeight":"w700",
                                "lineHeight":"1.3571428571428572",
                                "text":"2月份购买的大疆御air2无人机随心换 加畅飞套装。九成新,三 块电池均循环二十次左右。地点在浙江义乌,有同城者线下见面交易。",
                                "textColor":"#FF333333",
                                "textSize":"14.0"
                            },
                            "type":"Text"
                        }
                    ],
                    "showVideoIcon":"false",
                    "stuffStatusTagHeight":"0.0",
                    "stuffStatusTagWidth":"0.0",
                    "title":"2月份购买的大疆御air2无人机随心换加畅飞套装。九成新,三 块电池均循环二十次左右。地点在浙江义乌,有同城者线下见面交易。",
                    "userActiveUrl":"https://gw.alicdn.com/tfs/TB1zIymVUz1gK0jSZLeXXb9kVXa-30-30.png",
                    "userAvatarUrl":"http://img.alicdn.com/sns_logo/i1/O1CN01UZiot91n2FHGxgaOU_!!0-fleamarket.jpg",
                    "want":"9人想要"
                },
                "targetUrl":"fleamarket://awesome_detail?id=642417625236&flutter=true&referPageArgs=%E5%A4%A7%E7%96%86air2&referPage=Page_xySearchResult&trackParamsJson=%7B%22q%22%3A%22%25E5%25A4%25A7%25E7%2596%2586air2%22%2C%22page_number%22%3A%227%22%2C%22item_id%22%3A%22642417625236%22%2C%22item_type%22%3A%22goods%22%2C%22index%22%3A%222%22%2C%22id%22%3A%22642417625236%22%2C%22rn%22%3A%22b9422f7d85c2674cfca17c4bbe82b2ad%22%2C%22search_from_page%22%3A%22xyHome%22%2C%22search_id%22%3A%226235ddeb301fb829c4d99c1e028d88b0%22%7D"
            }
        },
        "template":{
            "name":"idlefish_search_card_item_waterfall",
            "url":"https://ossgw.alicdn.com/rapid-oss-bucket/1615185324004/idlefish_search_card_item_waterfall.zip",
            "version":"6"
        }
    },
    "style":"flow",
    "type":"DX"
}

  

闲鱼商品详情页:
详情页请求参数:
{"gps":"39.925575,116.194931","itemId":"626382089218","latitude":"39.925575","longitude":"116.194931","needSimpleDetail":false},[request]:{"apiName":"mtop.taobao.idle.awesome.detail","apiVersioin":"1.0","gps":"39.925575,116.194931","mParam":{"gps":"39.925575,116.194931","itemId":"626382089218","latitude":"39.925575","longitude":"116.194931","needSimpleDetail":false},"mRequestConfig":{"apiName":"mtop.taobao.idle.awesome.detail","apiVersion":"1.0","needJsonReq":false,"needLogin":false,"needWua":false},"originJson":false,"param":{"gps":"39.925575,116.194931","itemId":"626382089218","latitude":"39.925575","longitude":"116.194931","needSimpleDetail":false},"requestConfig":{"apiName":"mtop.taobao.idle.awesome.detail","apiVersion":"1.0","needJsonReq":false,"needLogin":false,"needWua":false},"secondRefresh":false,"startTime":1618059082660}\'}

package com.taobao.idlefish.protocol.net;

import com.taobao.idlefish.protocol.Protocol;
import com.taobao.idlefish.protocol.net.api.BaseApiProtocol;

public interface PApiContext extends Protocol {
    long getDate();

    void logout();

    <T, A extends ResponseParameter> void send(BaseApiProtocol<T, A> baseApiProtocol, ApiCallBack<A> apiCallBack);
}
--------------------------------------------------------------------------------
public void ss() {
    Log.c("detail", "jinyi.cyp80", "begin recommendForPreload....");
    if (this.mItemDetailDO == null || ((this.eN != null && this.eN.size() > 0) || !this.mItemDetailDO.needRecommand)) {
        Log.c("detail", "jinyi.cyp80", "return recommendForPreload....");
        return;
    }
    ((PApiContext) XModuleCenter.moduleForProtocol(PApiContext.class)).send(new ApiProtocol().apiNameAndVersion("mtop.taobao.idle.item.recommend.list", "2.0").paramMap(JSON.parseObject(JSON.toJSONString(a(this.mItemDetailDO)))), new ApiCallBack<ResponseParameter>() {
        /* class com.taobao.fleamarket.detail.model.ItemDetailModel.AnonymousClass3 */

        @Override // com.taobao.idlefish.protocol.net.ApiCallBack
        public void onSuccess(ResponseParameter responseParameter) {
            if (responseParameter.getData() != null) {
                JSONArray cardList = ((JSONObject) responseParameter.getData()).getJSONArray("cardList");
                if ((responseParameter.getData() instanceof JSONObject) && cardList != null) {
                    ResponseParameter unused = ItemDetailModel.this.a = responseParameter;
                    Log.c("detail", "jinyi.cyp80", "get prelaodData!!");
                }
            }
        }

        @Override // com.taobao.idlefish.protocol.net.ApiCallBack
        public void onFailed(String code, String msg) {
            Log.c("detail", "jinyi.cyp80", "failed prelaodData!!");
        }
    });
}