游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

PythonSelenium爬虫实战应用

  本节讲解PythonSelenium爬虫实战案例,通过对实战案例的讲解让您进一步认识Selenium框架。
  实战案例目标:抓取京东商城(https:www。jd。com)商品名称、商品价格、评论数量,以及商铺名称。比如输入搜索Python书籍,则抓取如下数据:{name:Python编程从入门到实践第2版人民邮电出版社,price:52。50,count:200条评价,shop:智囊图书专营店}{name:Python编程从入门到实践第2版(图灵出品),price:62。10,count:20万条评价,shop:人民邮电出版社}。。。123复制代码类型:〔python〕
  Selenium框架的学习重点在于定位元素节点,关于如何定位,我们已经介绍了8种方法,其中Xpath表达式适用性强,并且便捷。因此,建议大家多多熟悉Xpath表达式的相关语法规则。本节案例中很大一部分采用了Xpath表达式定位元素,希望帮助您温故知新。
  本节案例中涉及了几个技术难点:第一,如何下拉滚动条下载商品,第二,如何实现翻页,也就是抓取下一页的内容,第三,如何判断数据已经抓取完毕,即终止页。下面我们逐步讲解。实现自动搜索
  实现自动输出、自动搜索是最基础的一步。首先定位输入框的的节点,其次定位搜索按钮节点,这与实现百度自动搜索思路一致,最关键就是要正确定位元素节点。
  通过开发者调试工具检查相应的的位置,可得如下Xpath表达式:输入框表达式:〔idkey〕搜索按钮表达式:〔classform〕button12复制代码类型:〔python〕
  代码如下所示:fromseleniumimportwebdriverbroswerwebdriver。Chrome()broswer。get(https:www。jd。com)broswer。findelementbyxpath(〔idkey〕)。sendkeys(python书籍)broswer。findelementbyxpath(〔classform〕button)。click()12345复制代码类型:〔python〕滚动滑动条
  实现了自动搜索后,接下来就是要抓取页面中的商品信息,而您会发现只有将滑动条滚动至底部,商品才会全部加载完毕。滚动滑轮操作的代码如下:scrollTo(xpos,ypos)executescript()执行js语句,拉动进度条件scrollHeight属性,表示可滚动内容的高度self。browser。executescript(window。scrollTo(0,document。body。scrollHeight)拉动进度条至底部)123456复制代码类型:〔python〕
  之后在通过Xpath表达式匹配所有商品,并将它们放入一个大列表中,通过循环列表取出每个商品,最后提取出想要的信息。lilistself。browser。findelementsbyxpath(〔idJgoodsList〕ulli)forliinlilist:item{}提取商品名item〔name〕li。findelementbyxpath(。p〔classpname〕aem)。text。strip()提取价格item〔price〕li。findelementbyxpath(。p〔classpprice〕)。text。strip()提取评论数量item〔count〕li。findelementbyxpath(。p〔classpcommit〕strong)。text。strip()提取商家店铺item〔shop〕li。findelementbyxpath(。p〔classpshopnum〕)。text。strip()1234567891011复制代码类型:〔python〕实现翻页抓取
  如何实现翻页抓取数据,并判断数据数据已经抓取完毕呢?这其实并不难想到,我们可以先跳至终止页(即最后一页)。此时最后一页的下一页处于不可用状态,其元素节点如下:终止页下一页class属性:em下一页emii其他页下一页class属性:em下一页emii12复制代码类型:〔python〕
  如果页面源码中有上述代码存在,则证明此页是最后一页,若没有则不是。因此通过if。。。else语句即可实现上述需求,如下所示:1说明没找到,不是最后一页,执行点击下一页操作ifself。browser。pagesource。find(pnnextdisabled)1:browser。findelementbyclassname(pnnext)。click()123复制代码类型:〔python〕完整程序代码
  完整程序代码如下所示:coding:utf8fromseleniumimportwebdriverimporttimeimportpymongoclassJdSpider(object):definit(self):self。urlhttp:www。jd。comself。optionswebdriver。ChromeOptions()无头模式self。options。addargument(headless)self。browserwebdriver。Chrome(optionsself。options)创建无界面参数的浏览器对象self。i0计数,一共有多少件商品输入地址输入商品点击按钮,切记这里元素节点是京东首页的输入栏、搜索按钮defgethtml(self):self。browser。get(self。url)self。browser。findelementbyxpath(〔idkey〕)。sendkeys(python书籍)self。browser。findelementbyxpath(〔classform〕button)。click()把进度条件拉倒最底部提取商品信息defgetdata(self):执行js语句,拉动进度条件self。browser。executescript(window。scrollTo(0,document。body。scrollHeight))给页面元素加载时预留时间time。sleep(2)用xpath提取每页中所有商品,最终形成一个大列表lilistself。browser。findelementsbyxpath(〔idJgoodsList〕ulli)forliinlilist:构建空字典item{}item〔name〕li。findelementbyxpath(。p〔classpname〕aem)。text。strip()item〔price〕li。findelementbyxpath(。p〔classpprice〕)。text。strip()item〔count〕li。findelementbyxpath(。p〔classpcommit〕strong)。text。strip()item〔shop〕li。findelementbyxpath(。p〔classpshopnum〕)。text。strip()print(item)self。i1defrun(self):搜索出想要抓取商品的页面self。gethtml()循环执行点击下一页操作whileTrue:获取每一页要抓取的数据self。getdata()判断是否是最一页ifself。browser。pagesource。find(pnnextdisabled)1:self。browser。findelementbyclassname(pnnext)。click()预留元素加载时间time。sleep(1)else:print(数量,self。i)breakifnamemain:spiderJdSpider()spider。run()1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253复制代码类型:〔python〕
  输出结果如下:{name:Python编程从入门到实践第2版(图灵出品)人民邮电出版社,price:52。50,count:200条评价,shop:智囊图书专营店}{name:Python编程从入门到实践第2版(图灵出品),price:62。10,count:20万条评价,shop:人民邮电出版社}{name:Python编程三剑客:Python编程从入门到实践第2版快速上手第2版极客编程(套装共3册),price:206。90,count:5万条评价,shop:人民邮电出版社}{name:Python数据分析从入门到实践(excel高效办公)(3全彩版),price:46。10,count:10万条评价,shop:明日科技京东自营旗舰店}{name:零基础学Python(编程入门项目实践同步视频)(3全彩版),price:37。50,count:10万条评价,shop:明日科技京东自营旗舰店}{name:Python编程快速上手让繁琐工作自动化第2版,price:44。50,count:10万条评价,shop:人民邮电出版社}{name:现货包邮Python学习手册(原书第5版)上下册2本计算机编程设计8053406,price:142。30,count:100条评价,shop:互动创新图书专营店}{name:零基础入门学习Python(第2版),price:70。30,count:1万条评价,shop:清华大学出版社}{name:超简单:用Python让Excel飞起来,price:34。90,count:2万条评价,shop:机械工业出版社自营官方旗舰店}{name:流畅的Python(图灵出品),price:109。80,count:2万条评价,shop:人民邮电出版社}{name:Python编程从入门到实践第二版python编程从入门到实战零基础自学教程计算机基础语言数据分析,price:49。80,count:5000条评价,shop:墨马图书旗舰店}{name:Python深度学习:基于PyTorch,price:73。40,count:5万条评价,shop:机械工业出版社自营官方旗舰店}{name:Python自然语言处理实战:核心技术与算法自然语言处理教程,price:48。30,count:37条评价,shop:芝麻开门图书专营店}{name:EffectivePython:编写高质量Python代码的90个有效方法(原书第2版),price:110。60105。10,count:2万条评价,shop:机械工业出版社自营官方旗舰店}。。。123456789101112131415复制代码类型:〔python〕
  Selenium自动化爬虫让你无须关心网站的类型(静态或者动态),只需您按部就班的寻找元素节点,并依此点击,即可实现数据抓取。不过Selenium最大的缺点就是效率低,因此它只适合做小规模的数据采集工作。
  开课吧广场人才学习交流平台

怎么挑选卫浴五金?这道题,并不难解五金配件在家装中是相对容易被忽略的物件,但实际上,这些看似不起眼的配件却对我们的整个家居设计,包括家具使用都起到至关重要的作用。五金配件涵盖的范围很广,门窗五金、厨房五金……iPhone13最低配只有64GB,你怎么看?声明,不是引战,但现在都2021年了,为什么最低配还是64GB?一点旗舰的样子都没,至少128GB起步吧?最近iPhone13全系配置与价格已曝光,具体的性能等就交给专业……45岁的中年人还有改变命运的机会吗?不能,如果你到45岁还是底层人,那你的圈子和学识都是非常低的。你整天在为生活奔波,你没有时间去学习,没有机会进入有钱人的圈子。你的思维跟不上有格局的人。改变命运第一要靠自……8寸的掌上游戏本,你没有看错,细数WINMax的16大特点GPDWINMax十六大特色:1、放在桌面,是全球最小游戏本;双手握持,是一台掌机;随身携带,适合移动办公;2、最新AAA级游戏大作,大部分均可在中特效、60帧下运……逆势大涨新能源汽车销量为何能疯长,你要不要去试一试呢?2021年下半年首月的车市是这样的:乘用车零售量150万台,同比下降6。2新能源汽车为22。2万台,同比增长169。4重点是新能源汽车截止同期的年度累计销量达到122。9……驭由心行自在2022款大蚂蚁上市补贴后售价15。66万元起10月28日,奇瑞新能源2022款大蚂蚁正式上市!2021款大蚂蚁于去年9月22日上市,一年之后,奇瑞新能源再次为我们带来了全新力作。新款大蚂蚁整车共有包含了外观升级、驱……美团投了个饺子馆,小米投了个机器人,硬科技赛道不差钱丨投融周本周焦点回顾:大厂投资动态。美团投了个饺子馆,小米投了个机器人,华为依旧关注硬科技。大健康赛道,VCPE出手阔绰。互联网医疗及慢病管理企业圆心科技集团完成了超过15……数组去重方式1。一个简单的方式,但是又与太简单已被在面试中禁用functionmysort(arr){return〔。。。newSet(arr)〕}2。使用api的去重方式function……名门修谱追寻先烈足迹,不忘祖宗功德,国庆修谱好时候国庆修谱伴随着国庆的临近,很多人对于这个小长假都有着按耐不住的激动。国庆节,作为中国的传统大节日,放假期间,除了让自己好好地放松放松,趁着难得的假期,追寻先烈足迹,回忆祖……手机便签备忘录会泄露隐私吗?科技对人们生活的改变是巨大的,在很多年前,人们在办公的时候需要用到的设备很单一。而现今社会,手机、平板、电脑等设备都在人们的办公中起到了很大的作用,手机便签就是人们工作时常用的……自己的网自己做主,有了它再也不用蹭WiFi了现在的网络世界和每个人都息息相关,无论是学习、办公还是娱乐都离不开网络,让大多数人都变成了没了网络便不能生活的人。这其实一点都不夸张,我们每天在网上泡着,手机、平板、电脑等设备……无土栽培蔬菜成功的关键水质营养液配方及基质,3点关键技术导读:关于无土栽培蔬菜这个词,各位网友都不陌生。但是对于无土栽培种植行业而言,无土栽培模式并不简单,也不是谁都可以进入的。因为这个行业看似门槛比较低,实则里面需要的技术要求不是……
春课文教案设计优秀范例教学设想突出细美的特点。初进中学的学生在阅读和写作时常比较粗疏,课文中的细笔细绘可作为范例,给学生以启发。对文中的形象美、语言美、结构美、情味美,学生由于年龄小,不注意体……鹬蚌相争的教案设计一、第一自然段1、出示(这是一只河蚌)板:河蚌读(它张开壳儿在河滩上晒太阳)演:张壳出示:太阳问:被暖暖的太阳照着,河蚌会有怎样一番感觉呢?……苏教版第十册习作3教学反思第三篇大作文是学写新闻报道,这本来是学生比较感兴趣的一种练笔体裁,可是教材习作要求却限制必须写体育竞赛或学习竞赛的内容,这让我就不太明白了。如果马上组织竞赛,再来写这篇报道,就……地砖的周长教学设计范文教学目标:1、结合具体情境,探索并掌握正方形的周长的计算方法。2、能正确计算正方形的周长。能运用正方形的周长的计算方法解决实际生活中的简单问题。3、采用身边的……教学反思拼音教学认读拼音有助于学生掌握更多的生字,词语,拼音的教学是一年级语文教学中不可或缺的部分。学生在幼儿园中已经学习了拼音,本以为拼音的教学应该是很轻松的一件事,但在实践中却发现事实上不……出师表重点提要注释精选中道崩殂(帝王死),此诚(果真,实在)危急存亡之秋(时)也。开张圣听(扩大圣明的听闻),以光(发扬光大)先帝遗德,恢弘(扩大,发扬)志士之气,若有作奸犯科(科条法……课文雨点教案模板第一课时一、看图导入,揭示课题1、请小朋友看书上右上方的图,在一片片乌云的下面是什么?2、板书课题:雨点领读课题。3、继续看图,说说雨点落到什么地方,它……雾凇教案作为一位不辞辛劳的人民教师,通常需要用到教案来辅助教学,借助教案可以恰当地选择和运用教学方法,调动学生学习的积极性。那么优秀的教案是什么样的呢?下面是小编为大家收集的《雾凇》教……小班语言活动世界上最好听的声音活动名称:世界上最好听的声音。活动目标:1、能根据图片大胆猜测并讲述图中的小动物认为自己最动听的声音是什么。2、初步理解故事内容,了解每个人都有自己认为最好听……除法的含义及读写法教学反思范文本课时让学生在建立平均分概念的基础上学习除法,认识除号,了解除法等式的写法和读法,教学时,首先借助学生帮助熊猫京京平均分竹笋的活动,激起学生强烈的求知欲望,之后,介绍除法算式的……减少的近义词和反义词是什么关于减少的近义词大家知道哪些?今天就由小编为大家带来关于减少的近义词及其相关知识解析,希望能帮助到您,一起来看看吧!减少的近义词缩小:1。由大变小。缩小削减:……小班艺术活动设计帮小羊穿棉衣设计意图:冬天到了,天气冷了,人们都已经换上了厚厚的棉衣,为了让幼儿知道动物和人是一样的,冬天也需要保暖,因此,让幼儿进行了手工制作《帮小羊穿棉衣》。活动目标:……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网