Magento 作為電商系統(tǒng),在功能完備,以及操作簡便方面必須做出取舍。功能完備,會(huì)導(dǎo)致一些操作很麻煩。
電商運(yùn)營中有很多繁雜的工作,其中產(chǎn)品上傳一定是很讓人頭痛的,各個(gè)平臺(tái)有自己的數(shù)據(jù)結(jié)構(gòu),同一個(gè)產(chǎn)品要發(fā)到不同的平臺(tái)必定需要做不同的數(shù)據(jù)表。
電小秘等ERP在這中間還是有不少方便之處的,電小秘通過采集數(shù)據(jù)然后生成不同平臺(tái)的數(shù)據(jù)表,只需要修改很少的數(shù)據(jù)就能將產(chǎn)品從一個(gè)平臺(tái)上傳到另外的平臺(tái)。
目前電小秘還沒有對(duì)Magento進(jìn)行支持,這些工作就只有自己完成了。
思路是:
1、從現(xiàn)有平臺(tái)抓取產(chǎn)品數(shù)據(jù),生成產(chǎn)品json數(shù)據(jù),方便后續(xù)使用以及以后可能要用到的地方。
2、為了數(shù)據(jù)的重復(fù)使用,步驟一沒有直接生成需要的數(shù)據(jù)表。利用json作為數(shù)據(jù)儲(chǔ)存,生成Magento相適應(yīng)的product list,這里magento使用的是csv文檔
3、導(dǎo)入csv文檔
實(shí)現(xiàn)過程:
1、抓取產(chǎn)品數(shù)據(jù)的方法有很多,直接用python,或者第三方庫scrapy. 但是這兩種方法的局限性是目前眾多網(wǎng)站在防爬蟲方面都做了很多工作,不是以前發(fā)生請(qǐng)求,鏈接就能獲取數(shù)據(jù)了。我沒有深入了解python、scrapy,但是如果要完全模擬瀏覽器環(huán)境,需要對(duì)網(wǎng)站有很深的分析,cookie,session,token等一樣都不能少。 ? ?selenium在這方面有不錯(cuò)的優(yōu)勢(shì),目前selenium有單機(jī)模式以及遠(yuǎn)程模式,同時(shí)還可以多機(jī)部署。多的我不說了,朋友們自己去了解。用selenium爬取產(chǎn)品信息,生成json文檔。
2、這一步里就是簡單的python處理json文檔和csv文檔的操作。值得注意的一點(diǎn)是,在寫入數(shù)據(jù)的時(shí)候,兩種操作模式
with open('products.csv','w+',newline='' )as csvfilea:
with open('products.csv','a+',newline='' )as csvfilea:
w+是覆蓋模式,將文檔覆蓋最新的信息
a+是追加模式,在文檔末尾添加新信息
為什么要用’+‘呢,我嘗試過不添加+,會(huì)讓數(shù)據(jù)變成亂碼。
我的猜測是,csv文檔添加的是對(duì)象,對(duì)象需要訪問文檔第一行的key值才能在對(duì)應(yīng)的地方生成value. 因?yàn)閜ython中字典是沒有順序的。
3、將生成的csv導(dǎo)入magenta. 這里需要嘗試多次,因?yàn)樯傻臄?shù)據(jù)有可能不符合要求,需要不斷調(diào)整后,就能方便的使用了。
好了,介紹到這里,這些看似簡單,但是中間會(huì)遇到很多問題,可以一起交流優(yōu)化。