疫情又又又来了,看我爬取京东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阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容