淘宝销量获取
?想爬取什么數據你們可以在文章下面評論一下,我好鍛煉一下自己的爬蟲能力,當然源碼會給你們放出來。我們今天就使用自動化爬取數據,自動化的話就是人可以怎么操作,機器就可以怎么操作。用到的工具chromedrive.exe,下載地址:
?
https://npm.taobao.org/mirrors/chromedriver。這個工具下載安裝好后要把這個chromedriver.exe復制到跟你的解釋器同一目錄之下cmd 中 where python, chromedriver.exe 跟 python.exe(指定執行pycharm這個python解釋器) 放在一起不會我下一篇文章會寫。我看了其他博主寫得都不太詳細。我們這里用的是谷歌瀏覽器。
用到的包是selenium.我們可以到cmd里面輸入pip install?selenium 回車就會自動下載這個包。
這里selenium的使用可以看這個博主的。Python Selenium庫的使用_凱耐的博客-CSDN博客_python selenium
from selenium.webdriver import Chrome #導包 if __name__ == '__main__':chrome_obj = Chrome()#因為是個類,所以要創建一個對象。chrome_obj.get('https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=ab1fdcf6365ee8bc6248263f22f49a33&upsId=ab1fdcf6365ee8bc6248263f22f49a33') # 往瀏覽器的網頁地址欄填入淘寶網址這里我們運行一下發現他會自動打開我們的瀏覽器并打開我們的淘寶網。但是我們打開看見的是女裝。如果我們要搜索男裝我們有兩種方法1:可以輸入男裝的URL 2:還可以使用selenium的點擊輸入。
from selenium.webdriver import Chrome #導包 if __name__ == '__main__':chrome_obj = Chrome()#因為是個類,所以要創建一個對象。chrome_obj.get('https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=ab1fdcf6365ee8bc6248263f22f49a33&upsId=ab1fdcf6365ee8bc6248263f22f49a33') # 往瀏覽器的網頁地址欄填入淘寶網址#先定位到搜索框input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').clear()# 輸入搜索框數據input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').send_keys('男裝')#定位到點擊搜索按鈕click_obj = chrome_obj.find_element_by_xpath('//*[@id="J_searchForm"]/input')# 觸發點擊click_obj.click()#關閉瀏覽器chrome_obj.quit()這樣就完成了輸入男裝并搜索。
接下來就是數據解析。我一般都是使用xpath,正則不太熟悉。
?
?我們可以看到數據使用xpath解析出來了。那接下來就是搞代碼了。
?
運行發現成功了,接下來的是對數據合并。
?
數據合并后就是這樣了。源碼附上:
from selenium.webdriver import Chrome import time from lxml import etree import json #導包 if __name__ == '__main__':chrome_obj = Chrome()#因為是個類,所以要創建一個對象。chrome_obj.get('https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=ab1fdcf6365ee8bc6248263f22f49a33&upsId=ab1fdcf6365ee8bc6248263f22f49a33') # 往瀏覽器的網頁地址欄填入淘寶網址#先定位到搜索框input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').clear()# 輸入搜索框數據input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').send_keys('男裝')#定位到點擊搜索按鈕click_obj = chrome_obj.find_element_by_xpath('//*[@id="J_searchForm"]/input')# 觸發點擊click_obj.click()# 頁面等待,等待數據加載完畢time.sleep(2)# 獲取源碼數據html_data = chrome_obj.page_source# 數據的提取:html_obj = etree.HTML(html_data)# 商品名name_list = html_obj.xpath('//div/span[@class="title-text"]/text()')print(name_list)#商品銷量sell_info = html_obj.xpath('//div/div[@class="sell-info"]/text()')print(sell_info)#商品價格//div/span[@class="coupon-price-afterCoupon"]/text()jiage = html_obj.xpath('//div/span[@class="coupon-price-afterCoupon"]/text()')print(jiage)with open('taibao01.json', 'w', encoding='utf-8') as f:for i in range(len(name_list)):dict_ = {}dict_[name_list[i]] = sell_info[i]json_data = json.dumps(dict_, ensure_ascii=False) + ',\n'f.write(json_data)#關閉瀏覽器chrome_obj.quit()?
?
?
?
總結
- 上一篇: FlexSlider 轮播图插件 的详细
- 下一篇: 医学数据挖掘流程(三):特征工程