亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中如何爬取京東商品數據并實現數據可視化

發布時間:2021-06-07 10:06:42 來源:億速云 閱讀:540 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Python中如何爬取京東商品數據并實現數據可視化,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、開發工具

Python版本:3.6.4

相關模塊:

DecryptLogin模塊;

argparse模塊;

以及一些python自帶的模塊。

二、環境搭建

安裝Python并添加到環境變量,pip安裝需要的相關模塊即可。

三、原理簡介

原理其實挺簡單的,首先,我們利用之前開源的DecryptLogin庫來實現一下微博的模擬登錄操作:

'''模擬登錄京東'''
@staticmethod
def login():
    lg = login.Login()
    infos_return, session = lg.jingdong()
    return session

然后寫幾行簡單的代碼來保存一下登錄后的會話,省得每次運行程序都要先模擬登錄京東:

if os.path.isfile('session.pkl'):
    print('[INFO]: 檢測到已有會話文件session.pkl, 將直接導入該文件...')
    self.session = pickle.load(open('session.pkl', 'rb'))
    self.session.headers.update({'Referer': ''})
else:
    self.session = JDGoodsCrawler.login()
    f = open('session.pkl', 'wb')
    pickle.dump(self.session, f)
    f.close()

接著去京東抓一波包,一樣的套路,有種屢試不爽的感覺:

Python中如何爬取京東商品數據并實現數據可視化

看看請求這個接口需要提交的參數:

Python中如何爬取京東商品數據并實現數據可視化

我們可以簡單分析一下每個參數的含義:

area: 不用管,可以看作一個固定值
enc: 指定編碼, 可以看作固定值"utf-8"
keyword: 搜索的關鍵詞
adType: 不用管,可以看作一個固定值
page: 當前的頁碼
ad_ids: 不用管,可以看作一個固定值
xtest: 不用管,可以看作一個固定值
_: 時間戳

也就是說我們需要提交的params的內容大概是這樣子的:

params = {
            'area': '15',
            'enc': 'utf-8',
            'keyword': goods_name,
            'adType': '7',
            'page': str(page_count),
            'ad_ids': '291:19',
            'xtest': 'new_search',
            '_': str(int(time.time()*1000))
        }

構造好需要提交的params之后,只需要利用登錄后的session去請求我們抓包得到的接口:

response = self.session.get(search_url, params=params)

然后從返回的數據里解析并提取我們需要的數據就可以啦:

response_json = response.json()
all_items = response_json.get('291', [])
for item in all_items:
    goods_infos_dict.update({len(goods_infos_dict)+1: 
                                {
                                    'image_url': item.get('image_url', ''),
                                    'price': item.get('pc_price', ''),
                                    'shop_name': item.get('shop_link', {}).get('shop_name', ''),
                                    'num_comments': item.get('comment_num', ''),
                                    'link_url': item.get('link_url', ''),
                                    'color': item.get('color', ''),
                                    'title': item.get('ad_title', ''),
                                    'self_run': item.get('self_run', ''),
                                    'good_rate': item.get('good_rate', '')
                                }
                            })

四、數據可視化

老規矩,可視化一波我們爬取到的數據唄。以我們爬取到的無人機商品數據為例。首先,我們來看看京東里賣無人機的自營店和非自營店比例吧:

Python中如何爬取京東商品數據并實現數據可視化

咦,竟然是非自營店占多。我一直以為京東基本都是自營店,雖然我基本不用京東。真是個天大的誤解T_T。

接著,我們再來看看京東自己給的商品排名前10的那幾家店的商品評論數量唄:

Python中如何爬取京東商品數據并實現數據可視化

對比一下評論最多的店鋪:

Python中如何爬取京東商品數據并實現數據可視化

看來評論數量和京東給的商品排名并沒有直接聯系T_T,竟然沒有一家店是重復的。

再來看看無人機相關商品的價格分布唄:

Python中如何爬取京東商品數據并實現數據可視化

關于“Python中如何爬取京東商品數據并實現數據可視化”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通化县| 庐江县| 泰州市| 藁城市| 鲁山县| 罗平县| 文昌市| 鄱阳县| 锡林浩特市| 永平县| 新兴县| 洪洞县| 渝北区| 鄂尔多斯市| 丹寨县| 灵台县| 杭锦旗| 静安区| 河南省| 永兴县| 永善县| 陇南市| 陕西省| 噶尔县| 通城县| 枣庄市| 锡林郭勒盟| 乐清市| 库尔勒市| 临泽县| 加查县| 曲水县| 玉林市| 武夷山市| 霍林郭勒市| 北票市| 宁德市| 临安市| 蒙城县| 襄汾县| 册亨县|