《Python网络爬虫技术案例教程》教案 第10章 项目实战——京东商品信息爬取及数据分析.docx
PAGE4
PAGE4
PAGE5
PAGE5
课题
第10章项目实战——京东商品信息爬取及数据分析
课时
4课时(180min)
教学目标
知识目标:
掌握使用pandas分析爬取到的数据
能力目标:
(1)练习使用Selenium模拟浏览器爬取网站数据
(2)练习使用beautifulsoup4库解析数据
(3)练习将数据存储至MongoDB数据库
素质目标:
学会如何优化爬虫和数据分析流程,提高效率和准确性
教学重难点
教学重点:使用Selenium模拟浏览器爬取网站数据,使用beautifulsoup4库解析数据,将数据存储至MongoDB数据库
教学难点:使用pandas分析爬取到的数据
教学方法
案例分析法、问答法、讨论法、讲授法
教学用具
电脑、投影仪、多媒体课件、教材
教学过程
主要教学内容及步骤
考勤
【教师】使用APP进行签到
【学生】班干部报请假人员及原因
问题导入
【教师】提出以下问题:
如何分析爬取到的数据?
【学生】聆听、思考、举手回答
课堂实践
【教师】通过学生的回答引入要讲的知识,分析、讲解并演示爬取京东商品信息,并对其进行分析的步骤,然后组织学生以小组为单位进行操作
10.1项目需求
本项目的目标是根据输入的搜索关键字爬取京东网站相关商品的信息,包括商品名、价格、店铺名和评价数,然后将数据保存至MongoDB数据库中,最后读取数据库中的数据进行分析。
?【教师】利用多媒体展示“京东网站搜索的手机相关商品信息”图片(详见教材),并进行讲解
例如,输入“手机”,搜索京东网站中手机相关的商品信息(见图),包括不同品牌不同型号的手机价格、店铺名和评价数(根据评价数可推测销量)。通过这些数据可以分析手机的价格分布、不同型号手机销量和均价、店铺销量比例等。
10.2爬虫实现
根据项目需求,爬虫程序可以分为四个模块,分别是初始化模块、搜索模块、解析模块、主模块,它们的实现方法如下。
10.2.1初始化模块
导入selenium库中webdriver相关模块,beautifulsoup4库中BeautifulSoup模块、time模块和pymongo模块;初始化GoogleChrome浏览器和WebDriverWait对象;连接MongoDB数据库,并创建名为“京东”的数据库。实现代码如下。
#导入webdriver模块
fromseleniumimportwebdriver
#导入By模块
frommon.byimportBy
……(详见教材)
10.2.2搜索模块
?【教师】利用多媒体展示“京东搜索”图片(详见教材),并进行讲解
在此模块中,定义一个搜索函数search(keywd),其中keywd参数为搜索关键字。该函数实现根据关键字在京东网站中搜索商品,其过程为:使用Selenium中的get()方法请求京东网站,打开一个GoogleChrome浏览器窗口;然后定位搜索编辑框节点(clstag属性值为“h|keycount|head|search_c”)并输入关键字,“搜索”节点(clstag属性值为“h|keycount|head|search_a”)并单击,如图所示。
实现代码如下。
#定义函数,参数为搜索关键字,实现搜索商品
defsearch(keywd):
#请求京东网登录页面,打开一个浏览器窗口
browser.get
time.sleep(1) #休眠1s
browser.maximize_window() #窗口最大化
time.sleep(1) #休眠1s
#输入搜索关键字
wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR,[clstag=h|keycount|head|search_c]))
).send_keys(keywd)
#单击搜索按钮
wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR,[clstag=h|keycount|head|search_a]))
).click()
time.sleep(2) #休眠2s
10.2.3解析模块
在此模块中,定义一个解析函数goods_parse(collection),其中collection参数为MongoDB数据库的集合名。该函数实现获取和解析网页内容,获取所需数据,并将数据保存到MongoDB数据库的集合中。其过程如下:
?【教师】利用多媒体展示“所有