22-0001 淘寶店鋪搜索界面

1.元素

  • 獲取店鋪搜索界面每個店鋪的’sellerid’

備註:通過sellerid可以在下面鏈接中獲取買家秀的圖片,也可以使用相關軟件進行下載。[將最後的xxx替換爲sellerid即可]
Link:https://h5.m.taobao.com/ocean/privatenode/shop.html?&sellerId=xxx

2.過程

2.1 搜索界面的網頁源碼

店鋪搜索界面如下:
在這裏插入圖片描述
備註:每一個界面會有20個結果,結果是根據熱度排序的


源碼如下:
在這裏插入圖片描述

trace-uid:與sellerid是一致的
貓受屋:店鋪的名字

備註:每一頁對應可以搜索得到20個類似的id。

2.2 通過Chrome控制檯獲取sellerid

//備註:需要保證20個店鋪都加載過,否則獲取的不完整
tag_list=document.getElementsByClassName("list-img");
str_pr="";
for (var i =0; i < tag_list.length; i++) {
    a_list=tag_list[i].getElementsByTagName("a");
    trace_uid=a_list[0].getAttribute("trace-uid");
    trace_title=a_list[0].title;
    str_temp=trace_uid+':'+trace_title;
    str_pr=str_pr+str_temp+'\n';
}
console.log(str_pr);

對應的一段源碼如下:
在這裏插入圖片描述

2.3 搜索鏈接

如下鏈接:不能得到任何與第幾頁相關的內容

url='https://shopsearch.taobao.com/search?q=%E6%89%8B%E5%8A%9E&js=1&initiative_id=staobaoz_20200511&ie=utf8';
'q=%E6%89%8B%E5%8A%9E':搜索的內容,url二次編碼
'ie=utf8':編碼格式

下翻一頁與上一頁對比:

url1='https://shopsearch.taobao.com/search?q=%E6%89%8B%E5%8A%9E&js=1&initiative_id=staobaoz_20200511&ie=utf8';
url2='https://shopsearch.taobao.com/search?q=%E6%89%8B%E5%8A%9E&js=1&initiative_id=staobaoz_20200511&ie=utf8&s=20';

可以看到末尾的多了 ‘s=20’ ,可以通過這個鏈接,每次獲取網頁源碼,從中進行提取。

備註:上面的方法不可行,因爲需要進行登錄,哈哈~
因此,需要在控制檯輸入JS代碼,將每次的結果進行復制

2.4 控制檯

在這裏插入圖片描述
有這麼一項:

url='https://tmatch.simba.taobao.com/?name=tbuad&o=j&count=20&p4p=tbcc_p4p_c2015_8_130026_15891809314781589180932117&pid=430409_1006&keyword=%CA%D6%B0%EC&offset=20';
name='tbuad';
count=20;
p4p='tbcc_p4p_c2015_8_130026_15891809314781589180932117';
pid='430409_1006';
keyword='%CA%D6%B0%EC';
offset=20;

經過了一番測試,得到如下結果:

  • count:返回搜索結果的數目,最大200
  • offset:偏移,從將offset後count個店鋪信息返回
  • keyword:類似於url二次編碼,但似乎還進行了其他處理,不能直接解碼
  • p4p可以去掉
  • pid可以任意修改,但一定要有

類似於一個接口

其中的內容如下:
在這裏插入圖片描述
備註:果不其然,只有20條數據。
單拎出來一條:
在這裏插入圖片描述

SELL:賣出的數目
SELLERID:店鋪的sellerid
GRADE:類似於熱度,數字越大、熱度越高
ISMALL:不知道
SHOPNAME:店鋪的名字
SHOPID:店鋪的id

備註:可以使用python批量獲取N條數據,將其排列得到熱度較高的店鋪。python代碼就不貼出來了

3.總結

這纔不過是第一篇,以後指定會遇到各種奇奇怪怪的網站~
其中類似於url二次編碼的問題,是值得思考與探討的~

//這兩個是如何表示同一種內容的?
//使用Javascript encodeURI() 函數,用於完整的URL編碼。',
str1='%E6%89%8B%E5%8A%9E';//encodeURI
//使用Javascript encodeURIComponent() 函數,用於拼接URL的參數。
str2='%CA%D6%B0%EC';//encodeURIComponent

關於圖片下載的部分內容:
鏈接:https://wenshitaiyi.lanzous.com/ichlukf
密碼:8pzd
備註:生成的文件夾與該.exe文件在同一個路徑下!🤔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章