Python解決某寶各類反爬技術,採集任意商品的所有信息!

環境:

  • windows
  • python3.6.5

模塊:

  • time
  • selenium
  • re

開發環境與需要用到的第三方模塊介紹完畢後,開始我們的操作吧。

第一步:

進入官網首頁:

<code>driver = webdriver.Chrome()
driver.get('http://www.taobao.com')/<code>

第二步:

  1. 在輸入框中,輸入想要查找的商品
  2. 點擊搜索按鈕
<code>driver.find_element_by_id('q').send_keys(keyword)
driver.find_element_by_class_name('btn-search').click()/<code>
Python解決某寶各類反爬技術,採集任意商品的所有信息!

然後會跳轉到登陸界面:

Python解決某寶各類反爬技術,採集任意商品的所有信息!

我們選擇掃碼登陸,這個操作需要佔用一定的時間,考慮到手速,那就保持延遲10秒吧

<code>time.sleep(10)/<code>

登陸後,自動跳轉到信息頁面:

Python解決某寶各類反爬技術,採集任意商品的所有信息!

第三步:

提取出信息,價格、訂單量、商品信息、賣家地址:

Python解決某寶各類反爬技術,採集任意商品的所有信息!

商品信息在class屬性為item J_MouserOnverReq 的div標籤中。

寫出我們的xpath提取規則:

<code>        info = li.find_element_by_xpath('.//div[@class="row row-2 title"]').text
price = li.find_element_by_xpath('.//a[@class="J_ClickStat"]').get_attribute('trace-price') + '元'
deal = li.find_element_by_xpath('.//div[@class="deal-cnt"]').text
name = li.find_element_by_xpath('.//div[@class="shop"]/a/span[2]').text
position = li.find_element_by_xpath('.//div[@class="row row-3 g-clearfix"]/div[@class="location"]').text/<code>


Python解決某寶各類反爬技術,採集任意商品的所有信息!

第四步:

第一頁採集完畢後,進行翻頁操作。

我們可以構造url:

Python解決某寶各類反爬技術,採集任意商品的所有信息!

可以看到url的步長為44,並且總頁數為100。先提取出我們的總頁數:

<code>    token = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]')
token = token.text
token = int(re.compile('(\\d+)').search(token).group(1))/<code>

然後循環構造url:

<code>    num = 1
while num != token - 1:
driver.get('https://s.taobao.com/search?q={}&s={}'.format(keyword, 44 * num))
driver.implicitly_wait(10)
drop_down()
get_product()
num += 1/<code>

效果:

Python解決某寶各類反爬技術,採集任意商品的所有信息!


分享到:


相關文章: