實現在淘寶自動搜索商品的關鍵就是獲取下一頁商品的URL地址。下面分析一下兩種不同搜索方式下商品URL地址的特點。
第一種方式是自己在搜索欄中輸入要搜索的商品,如下圖所示。
依次獲取連續6頁的URL
第1頁
q=%E7%BE%BD%E6%AF%9B%E7%90%83&js=1&style=grid&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170301&ie=utf8"
第2頁q=%E7%BE%BD%E6%AF%9B%E7%90%83&js=1&style=grid&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170301&ie=utf8&bcoffset=0&ntoffset=0&p4ppushleft=1%2C48&s=44"
第3頁
"?q=%E7%BE%BD%E6%AF%9B%E7%90%83&js=1&style=grid&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170301&ie=utf8&bcoffset=-3&ntoffset=-3&p4ppushleft=1%2C48&s=88"
第4頁
"?q=%E7%BE%BD%E6%AF%9B%E7%90%83&js=1&style=grid&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170301&ie=utf8&bcoffset=-6&ntoffset=-6&p4ppushleft=1%2C48&s=132"
第5頁
"?q=%E7%BE%BD%E6%AF%9B%E7%90%83&js=1&style=grid&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170301&ie=utf8&bcoffset=-9&ntoffset=-9&p4ppushleft=1%2C48&s=176"
第6頁
"?q=%E7%BE%BD%E6%AF%9B%E7%90%83&js=1&style=grid&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170301&ie=utf8&bcoffset=-12&ntoffset=-12&p4ppushleft=1%2C48&s=220"
第二種方式是通過淘寶的推薦搜索商品

點擊搜索框下面的襯衫,依次獲取連續6頁的URL
第1頁
"?q=%E8%A1%AC%E8%A1%AB&refpid=430275_1006&source=tbsy&style=grid&tab=all&pvid=d9eedc1c5512c8b022d9da83755d0894&clk1=e9e6df54df8dcbdf3526c10092be4238&spm=a21bo.50862.201856-sline.10.qzPfqS"
第2頁
"?q=%E8%A1%AC%E8%A1%AB&refpid=430275_1006&source=tbsy&style=grid&tab=all&pvid=d9eedc1c5512c8b022d9da83755d0894&clk1=e9e6df54df8dcbdf3526c10092be4238&spm=a21bo.50862.201856-sline.10.qzPfqS&bcoffset=-3&p4ppushleft=3%2C44&s=44&ntoffset=-3"
第3頁
"?q=%E8%A1%AC%E8%A1%AB&refpid=430275_1006&source=tbsy&style=grid&tab=all&pvid=d9eedc1c5512c8b022d9da83755d0894&clk1=e9e6df54df8dcbdf3526c10092be4238&spm=a21bo.50862.201856-sline.10.qzPfqS&bcoffset=-3&p4ppushleft=3%2C44&s=88&ntoffset=-3"
第4頁
"?q=%E8%A1%AC%E8%A1%AB&refpid=430275_1006&source=tbsy&style=grid&tab=all&pvid=d9eedc1c5512c8b022d9da83755d0894&clk1=e9e6df54df8dcbdf3526c10092be4238&spm=a21bo.50862.201856-sline.10.qzPfqS&bcoffset=-3&p4ppushleft=3%2C44&s=132&ntoffset=-3"
第5頁
"?q=%E8%A1%AC%E8%A1%AB&refpid=430275_1006&source=tbsy&style=grid&tab=all&pvid=d9eedc1c5512c8b022d9da83755d0894&clk1=e9e6df54df8dcbdf3526c10092be4238&spm=a21bo.50862.201856-sline.10.qzPfqS&bcoffset=-3&p4ppushleft=3%2C44&s=176&ntoffset=-3"
第6頁
"?q=%E8%A1%AC%E8%A1%AB&refpid=430275_1006&source=tbsy&style=grid&tab=all&pvid=d9eedc1c5512c8b022d9da83755d0894&clk1=e9e6df54df8dcbdf3526c10092be4238&spm=a21bo.50862.201856-sline.10.qzPfqS&bcoffset=-3&p4ppushleft=3%2C44&s=220&ntoffset=-3"
通過上面的分析可以看出對於不同的搜索方式,url的構成是不同的。例如第一種搜索方式中url包含js,style,stats_click,initiative_id,ie等參數。而第二種搜索方式包括refpid,source,tab,pvid,clk1,spm等參數。當然它們之間也有相同的部分例如bcoffset,ntoffset,ppushleft,s等參數。給定一種確定的搜索方式,不同頁面的url中,bcoffset,ntoffset和s參數也是不同,但是它們之間存在着某種規律,比如s值依次增加44,bcoffset依次遞減3或者不變,ntoffset和bcoffset的值相等。由於url中多個參數變化,那么能否僅根據一個參數就能實現不同頁面的url地址之間的切換呢?答案是肯定的,那就是可以更改url中的s的值,注意s的取值只能是44的倍數。
有一點需要注意的是無論采用哪一種搜索方式搜索結果第一頁的url中均沒有s參數,那么怎么樣才能讓第一頁中也出現s參數呢。具體方法就是在第一頁點擊下一頁按鈕,然后再點擊上一頁按鈕,返回到第一頁,你就會發現url中出現s參數了。
以上就是url地址的構成規律,具體程序可以訪問https://github.com/sgtcheer/item-search/blob/master/auto-search-item.js
利用上述方法實現的谷歌瀏覽器插件可以訪問 https://github.com/sgtcheer/chrome