疫情又又又來了,看我爬取京東6000款口罩,來看看那一款最適合你

疫情期間

個人防護有哪些需要注意的事項?

專家提醒

日常要繼續保持良好的

個人衛生防護習慣

堅持防疫的“三件套”和“五還要”

“三件套”:佩戴口罩、保持社交距離、注意個人衛生。

“五還要”:口罩還要戴、社交距離還要留、咳嗽噴嚏還要遮、雙手還要經常洗、窗戶還要盡量開。


這篇文章主要介紹了python selenium爬取京東6000多款口罩信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Selenium安裝

在此之前我們首先要準備好selenium的配置和安裝,如下:

selenium可以直接可以用pip安裝。

pip?install?selenium


chromedriver安裝

要注意的是chromedriver的版本一定要與Chrome的版本一致,不然就不起作用。

有兩個下載地址分別如下:

1、http://chromedriver.storage.googleapis.com/index.html

2、https://npm.taobao.org/mirrors/chromedriver/

當然,你首先需要查看你的Chrome版本,在瀏覽器中輸入

chrome://version?即可查看瀏覽器版本信息


目標確定

我們今天的任務就是爬取京東口罩


導入所需模塊

以下為我們此次爬取jd所需的python庫

importrandom

fromseleniumimportwebdriver

fromicecreamimportic

importtime

importcsv


目標網址

我們要獲取的jd鏈接如下,我們要獲取的內容包含口罩的標題、價格、評論數量、店鋪名稱、口罩詳情和口罩標簽等信息

https://search.jd.com/


打開瀏覽器并且加載網頁內容

執行如下代碼之后會自動跳轉到我們所要爬取的jd頁面

#?驅動加載

driver?=?webdriver.Chrome()

#?打開網站

driver.get('https://www.jd.com/')

#?等待網頁加載完成,不是死等;加載完成即可

driver.implicitly_wait(10)

#?定位輸入框并且輸入搜索關鍵字

driver.find_element_by_css_selector('#key').send_keys('口罩')

driver.find_element_by_css_selector('#key').send_keys(Keys.ENTER)

我們要獲取評論內容必須要拉到網頁最底部才可以完全加載出li標簽,這段邏輯我們交由js函數來實現

#?頁面滑動函數

defdrop_down():

forpageinrange(1,12,2):

time.sleep(1)

j?=?page/9

js?='document.documentElement.scrollTop?=?document.documentElement.scrollHeight?*?%f'%j

driver.execute_script(js)

driver.find_element_by_css_selector('#key').send_keys(Keys.ENTER)


獲取網頁信息

如上分析,所有評論信息都存在網頁對應的li標簽之中

所以接下來我們的思路就很清晰;進入到ul標簽去提取內部我們所需要的信息

#?獲取所有的li標簽

lis?=?driver.find_elements_by_css_selector('.gl-item')

print(len(lis))

'''

60

'''


提取網頁信息

接下來我們就在li標簽中提取我們所需要的信息

咱們再提取的時候如果你會一點點js的話就可以使用id(#),class(.)的方法,

如果你不懂的話直接右鍵copy xpat或者selector都是可以實現的


#?標題

title?=?li.find_element_by_css_selector('.p-name?em').text.replace('\n','')

#?價格

price?=?li.find_element_by_css_selector('.p-price?strong?i').text

#?評論數量

cmts_num?=?li.find_element_by_css_selector('.p-commit?strong?a').text

#店鋪名稱

shop_name?=?li.find_element_by_css_selector('.p-shop?span a').text

#口罩詳情

details?=?li.find_element_by_css_selector('.p-img?a').get_attribute('href')

#?店鋪標簽

icons?=?li.find_elements_by_css_selector('.p-icons?i')

icon?=','.join([x.textforxinicons])

ic(title,?price,?cmts_num,?shop_name,?details,?icon)

'''

ic|?title:?'愛康尼(AIKANGNI)口罩自營3d立體黑色成人一次性口罩獨立包裝冬季保暖薄款透氣V型顯臉小男女款防塵30枚'

price:?'27.00'

cmts_num:?'1萬+'

shop_name:?'愛康尼(AIKANGNI)京東自營旗艦店'

details:?'https://item.jd.com/100011649767.html'

icon:?'自營,放心購,秒殺,券39-5,滿29-3'

ic|?title:?'Dr.Chu初醫生?醫用隔離面罩一次性3D立體黑色白色防護防塵透氣男女網紅兒童口罩?【成人黑色】M碼(50只裝)'

price:?'34.00'

cmts_num:?'10萬+'

shop_name:?'初醫生昂王專賣店'

details:?'https://item.jd.com/10028619571038.html'

icon:?'秒殺,免郵,券29-3,每滿200-30'

'''


數據保存

數據成功提取接下來我們將數據保存在csv中便于后續可視化展示

#?數據存儲

f?=?open('jd口罩1.csv',?mode='a',?encoding='utf-8',?newline='')

csv_writer?=?csv.DictWriter(f,?fieldnames=[

'標題',

'價格',

'評論數量',

'店鋪名稱',

'詳情',

'標簽'

])

#?寫入表頭

csv_writer.writeheader()

dit?=?{

'標題':?title,

'價格':?price,

'評論數量':?cmts_num,

'店鋪名稱':?shop_name,

'詳情':?details,

'標簽':?icon

}

csv_writer.writerow(dit)

多頁獲取

我們定個小目標,先獲取300頁數據

forpageinrange(1,300+1):

print(f'-------------正在抓取第{page}頁-------------')

time.sleep(random.random()?*3)#?延時防止被反爬

spider_page()

#?點擊翻頁

driver.find_element_by_css_selector('.pn-next').click()

總共獲取了6000條測試數據,如果你有時間和興趣可以獲取更多哈

數據處理

接下來就是對數據去重和去空處理了,然后隨機抽取五條數據展示如下:

#?讀取數據

rcv_data?=?pd.read_csv('./jd口罩.csv')

#?刪除重復記錄

rcv_data?=?rcv_data.drop_duplicates()

#?刪除缺失值

rcv_data?=?rcv_data.dropna()

#?抽樣展示5條數據

print(rcv_data.sample(5))

'''

標題????價格??評論數量??????????????店鋪名稱???????????????????????????????????????詳情???????標簽

87???n95口罩女夏季薄款一次性黑白色男潮款kn95kf94防塵不勒耳3d立體級別?成人款白色【2...??19.9???1萬+????????德清元醫療器械專營店??https://item.jd.com/10035533519450.html??免郵,2件9折

190??恒助兒童醫用外科口罩3層95%過濾熔噴布助力開學小孩4-12歲一次性醫用口罩?兒童藍色/100片裝??19.9???2萬+???????????新世家族旗艦店?????https://item.jd.com/71225626103.html???????免郵

53???????????????勁度?一次性醫用外科口罩獨立包裝滅菌級成人口罩醫用防細菌飛沫防護?50只裝??38.9??20萬+??勁度(JINDU)京東自營旗艦店????https://item.jd.com/100017620290.html???????自營

0????????????????????????戴思一次性醫用口罩透氣輕薄成人3層醫用口罩50只?獨立包裝??29.9??50萬+??戴思(DAISI)京東自營旗艦店????https://item.jd.com/100009140187.html???????自營

142???????????????????????超亞哆啦A夢聯名款一次性成人醫用外科口罩醫療防護三層透氣???6.9???5萬+?????????超亞京東自營旗艦店????https://item.jd.com/100016314984.html???自營,放心購

'''


詞云展示

標簽詞云展示圖

好了今天的分析到此結束啦,有問題我們評論區見~~

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,791評論 6 545
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,795評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,943評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,057評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,773評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,106評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,082評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,282評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,793評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,507評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,741評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,220評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,929評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,325評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,661評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,482評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,702評論 2 380

推薦閱讀更多精彩內容