摘要:江山代有才人出各領(lǐng)風(fēng)騷數(shù)百年清趙翼論詩五首其二長江后浪推前浪,浮事新人換舊人宋劉斧青瑣高議東西用時間長了就該換新的了,特別是手機,這幾年發(fā)展太快,是越來越大,內(nèi)存是越來越不夠用了,想要換新的手機,但不知道換什么,那今天
江山代有才人出,各領(lǐng)風(fēng)騷數(shù)百年 ——清·趙翼 《論詩五首·其二》
長江后浪推前浪,浮事新人換舊人 ——宋·劉斧《青瑣高議》
東西用時間長了就該換新的了,特別是手機,這幾年發(fā)展太快,APP是越來越大,內(nèi)存是越來越不夠用了,想要換新的手機,但不知道換什么,那今天就爬一下淘寶,看一下淘寶手機的數(shù)據(jù),參考一下
我的開發(fā)環(huán)境:python3.8
計算機系統(tǒng):Windows10
開發(fā)工具:pycharm
要用的包:selenium、csv、time
網(wǎng)址:https://www.taobao.com/
今天用的是自動化測試工具selenium,沒有這個包的同學(xué)可以用pip install selenium 來安裝
安裝完之后還需要安裝個瀏覽器驅(qū)動,我用的是谷歌瀏覽器
http://chromedriver.storage.googleapis.com/index.html
打開這個鏈接,找到你瀏覽器版本所對應(yīng)的驅(qū)動,這是我的瀏覽器版本
可以看到我的版本是94.0.4606.81 沒有找到一樣的就找低一個版本的
選擇對應(yīng)的系統(tǒng),我的是win系統(tǒng)
把下載的壓縮文件解壓后,放到python解釋器的當(dāng)前文件夾下
驗證一下
from selenium.webdriver import Chromeweb = Chrome()web.get("https://www.baidu.com")
如果正常出現(xiàn)網(wǎng)頁就成功了,注意,一定要和你的版本相匹配,不然就會出現(xiàn)這樣
這個是我把瀏覽器更新之后驅(qū)動版本太低不支持了
至于其他瀏覽器在這里就不做太多的敘述了,流程大體相同,至于網(wǎng)站可以在網(wǎng)上找一下,下面進(jìn)入正題
selenium是模擬人正常在瀏覽器上的操作,正常我們打開網(wǎng)頁在搜索框輸入內(nèi)容點擊搜索
import timeimport csvfrom selenium.webdriver import Chromedef main(): win.get("https://www.taobao.com/") win.find_element_by_xpath("http://*[@id="q"]").send_keys(commodity) # 點擊搜索框,輸入前面想要搜索的內(nèi)容 win.find_element_by_xpath("http://*[@id="J_TSearchForm"]/div[1]/button").click() # 點擊搜索按鈕 win.maximize_window() # 將網(wǎng)頁放大方便我們掃碼登錄 time.sleep(15) # 等待15秒 讓我們有時間掃碼if __name__ == "__main__": commodity = input("想要查詢的商品:") win = Chrome() main()
這里需要我們掃碼登錄才讓我們搜索
我們在分析一下搜索界面,發(fā)現(xiàn)所有的商品數(shù)據(jù)都放在div標(biāo)簽里,可以看到不是所有的div里都有商品數(shù)據(jù),是從第四個div開始有數(shù)據(jù),這些div都有共同的特征,那就是屬性都是一樣的,可以用xpath通過class定位進(jìn)行曬選
items = win.find_elements_by_xpath("http://div[@class="items"]/div[@class="item J_MouserOnverReq "]")
這里需要注意一點因為我們選取了許多個div,所以find_elements_by_xpath里的element一定要加s,這樣才返回列表,前面選取搜索框和搜索按鈕的時候是不加s的
將獲取的div遍歷取出我們想要數(shù)據(jù)
for item in items: # 旗艦店 store = item.find_element_by_xpath(".//div[@class="shop"]/a").text # 商品簡述 desc = item.find_element_by_xpath("./div[2]/div[2]/a").text # 價格 price = item.find_element_by_xpath("./div[2]/div/div/strong").text # 人數(shù) num = item.find_element_by_xpath(".//div[@class="deal-cnt"]").text # 地址 address = item.find_element_by_xpath(".//div[@class="location"]").text
再將獲取的數(shù)據(jù)存儲到以搜索名稱命名的csv文件中
with open(f"{commodity}.csv", mode="a", newline="", encoding="utf-8-sig")as f: csv_writ = csv.writer(f, delimiter=",") csv_writ.writerow([store, desc, price, num, address])
附上結(jié)果
這次先這樣下次再將獲取到的數(shù)據(jù)進(jìn)行可視化生成柱狀圖、餅狀圖及地圖分布
全部代碼如下
import timeimport csvfrom selenium.webdriver import Chromedef get_data(): items = win.find_elements_by_xpath("http://div[@class="items"]/div[@class="item J_MouserOnverReq "]") for item in items: # 旗艦店 store = item.find_element_by_xpath(".//div[@class="shop"]/a").text # 商品簡述 desc = item.find_element_by_xpath("./div[2]/div[2]/a").text # 價格 price = item.find_element_by_xpath("./div[2]/div/div/strong").text # 人數(shù) num = item.find_element_by_xpath(".//div[@class="deal-cnt"]").text # 地址 address = item.find_element_by_xpath(".//div[@class="location"]").text with open(f"{commodity}.csv", mode="a", newline="", encoding="utf-8-sig")as f: csv_writ = csv.writer(f, delimiter=",") csv_writ.writerow([store, desc, price, num, address])def main(): win.get("https://www.taobao.com/") win.find_element_by_xpath("http://*[@id="q"]").send_keys(commodity) # 點擊搜索框,輸入前面想要搜索的內(nèi)容 win.find_element_by_xpath("http://*[@id="J_TSearchForm"]/div[1]/button").click() # 點擊搜索按鈕 win.maximize_window() # 將網(wǎng)頁放大方便我們掃碼登錄 time.sleep(15) # 等待15秒 讓我們有時間掃碼 get_data()if __name__ == "__main__": commodity = input("想要查詢的商品:") win = Chrome() main()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/122484.html
摘要:簡介上一個博文已經(jīng)講述了如何使用跳過檢測并爬取天貓商品數(shù)據(jù),所以在此不再詳細(xì)講,有需要思路的可以查看另外一篇博文。 簡介 上一個博文已經(jīng)講述了如何使用selenium跳過webdriver檢測并爬取天貓商品數(shù)據(jù),所以在此不再詳細(xì)講,有需要思路的可以查看另外一篇博文。 源代碼 # -*- coding: utf-8 -*- from selenium import webdr...
摘要:基于此,我爬取了淘寶上多條月餅的銷售數(shù)據(jù),為大家展示了一幅漂亮的可視化大屏,解決大家心目中的問題。模塊的安裝與配置這次爬取淘寶,采用的是最簡單的方式控制瀏覽器進(jìn)行自動化操作,中途只需要掃碼登陸一次,即可完成整個數(shù)據(jù)的爬取。 ...
摘要:簡介現(xiàn)在爬取淘寶,天貓商品數(shù)據(jù)都是需要首先進(jìn)行登錄的。把關(guān)鍵點放在如何爬取天貓商品數(shù)據(jù)上。是一款優(yōu)秀的自動化測試工具,所以現(xiàn)在采用進(jìn)行半自動化爬取數(shù)據(jù)。以開頭的在中表示類名,以開頭的在中表示名。 簡介 現(xiàn)在爬取淘寶,天貓商品數(shù)據(jù)都是需要首先進(jìn)行登錄的。上一節(jié)我們已經(jīng)完成了模擬登錄淘寶的步驟,所以在此不詳細(xì)講如何模擬登錄淘寶。把關(guān)鍵點放在如何爬取天貓商品數(shù)據(jù)上。 過去我曾經(jīng)使用get/p...
摘要:是一款優(yōu)秀的自動化測試工具,所以現(xiàn)在采用進(jìn)行半自動化爬取數(shù)據(jù),支持模擬登錄淘寶和自動處理滑動驗證碼。編寫思路由于現(xiàn)在大型網(wǎng)站對工具進(jìn)行檢測,若檢測到,則判定為機器人,訪問被拒絕。以開頭的在中表示類名,以開頭的在中表示名。 簡介 模擬登錄淘寶已經(jīng)不是一件新鮮的事情了,過去我曾經(jīng)使用get/post方式進(jìn)行爬蟲,同時也加入IP代理池進(jìn)行跳過檢驗,但隨著大型網(wǎng)站的升級,采取該策略比較難實現(xiàn)了...
摘要:以下這些項目,你拿來學(xué)習(xí)學(xué)習(xí)練練手。當(dāng)你每個步驟都能做到很優(yōu)秀的時候,你應(yīng)該考慮如何組合這四個步驟,使你的爬蟲達(dá)到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學(xué)習(xí)不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計方案,比如說。 (一)如何學(xué)習(xí)Python 學(xué)習(xí)Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法...
閱讀 3532·2023-04-25 20:09
閱讀 3736·2022-06-28 19:00
閱讀 3056·2022-06-28 19:00
閱讀 3075·2022-06-28 19:00
閱讀 3168·2022-06-28 19:00
閱讀 2874·2022-06-28 19:00
閱讀 3038·2022-06-28 19:00
閱讀 2632·2022-06-28 19:00