Python爬虫实战四之抓取淘宝MM照片
本篇目标1。抓取淘宝MM的姓名,头像,年龄
2。抓取每一个MM的资料简介以及写真图片
3。把每一个MM的写真图片按照文件夹保存到本地
4。熟悉文件保存的过程1。URL的格式
在这里我们用到的URL是http:mm。taobao。comjsonrequesttoplist。htm?page1,问号前面是基地址,后面的参数page是代表第几页,可以随意更换地址。点击开之后,会发现有一些淘宝MM的简介,并附有超链接链接到个人详情页面。我们需要抓取本页面的头像地址,MM姓名,MM年龄,MM居住地,以及MM的个人详情页面地址。2。抓取简要信息
相信大家经过上几次的实战,对抓取和提取页面的地址已经非常熟悉了,这里没有什么难度了,我们首先抓取本页面的MM详情页面地址,姓名,年龄等等的信息打印出来,直接贴代码如下authorCQCcoding:utf8importurllibimporturllib2importreclassSpider:definit(self):self。siteURLhttp:mm。taobao。comjsonrequesttoplist。htmdefgetPage(self,pageIndex):urlself。siteURL?pagestr(pageIndex)printurlrequesturllib2。Request(url)responseurllib2。urlopen(request)returnresponse。read()。decode(gbk)defgetContents(self,pageIndex):pageself。getPage(pageIndex)patternre。compile(img05。71396。combalk5c7276d5993418c4。jpgstrong。?spanimg05。71396。combalk5c7276d5993418c4。jpgspan,re。S)itemsre。findall(pattern,page)foriteminitems:printitem〔0〕,item〔1〕,item〔2〕,item〔3〕,item〔4〕spiderSpider()spider。getContents(1)
运行结果如下
2。文件写入简介
在这里,我们有写入图片和写入文本两种方式1)写入图片传入图片地址,文件名,保存单张图片defsaveImg(self,imageURL,fileName):uurllib。urlopen(imageURL)datau。read()fopen(fileName,wb)f。write(data)f。close()2)写入文本defsaveBrief(self,content,name):fileNamenamename。txtfopen(fileName,w)printu正在偷偷保存她的个人信息为,fileNamef。write(content。encode(utf8))3)创建新目录创建新目录defmkdir(self,path):pathpath。strip()判断路径是否存在存在True不存在FalseisExistsos。path。exists(path)判断结果ifnotisExists:如果不存在则创建目录创建目录操作函数os。makedirs(path)returnTrueelse:如果目录存在则不创建,并提示目录已存在returnFalse3。代码完善
主要的知识点已经在前面都涉及到了,如果大家前面的章节都已经看了,完成这个爬虫不在话下,具体的详情在此不再赘述,直接帖代码啦。spider。pyauthorCQCcoding:utf8importurllibimporturllib2importreimporttoolimportos抓取MMclassSpider:页面初始化definit(self):self。siteURLhttp:mm。taobao。comjsonrequesttoplist。htmself。tooltool。Tool()获取索引页面的内容defgetPage(self,pageIndex):urlself。siteURL?pagestr(pageIndex)requesturllib2。Request(url)responseurllib2。urlopen(request)returnresponse。read()。decode(gbk)获取索引界面所有MM的信息,list格式defgetContents(self,pageIndex):pageself。getPage(pageIndex)patternre。compile(img05。71396。combalk5c7276d5993418c4。jpgstrong。?spanimg05。71396。combalk5c7276d5993418c4。jpgspan,re。S)itemsre。findall(pattern,page)contents〔〕foriteminitems:contents。append(〔item〔0〕,item〔1〕,item〔2〕,item〔3〕,item〔4〕〕)returncontents获取MM个人详情页面defgetDetailPage(self,infoURL):responseurllib2。urlopen(infoURL)returnresponse。read()。decode(gbk)获取个人文字简介defgetBrief(self,page):patternre。compile(img05。71396。combalk5c7276d5993418c4。jpg!,re。S)resultre。search(pattern,page)returnself。tool。replace(result。group(1))获取页面所有图片defgetAllImg(self,page):patternre。compile(img05。71396。combalk5c7276d5993418c4。jpg!,re。S)个人信息页面所有代码contentre。search(pattern,page)从代码中提取图片patternImgre。compile(img。?srcimg05。71396。combalk5c7276d5993418c4。jpg,re。S)imagesre。findall(patternImg,content。group(1))returnimages保存多张写真图片defsaveImgs(self,images,name):number1printu发现,name,u共有,len(images),u张照片forimageURLinimages:splitPathimageURL。split(。)fTailsplitPath。pop()iflen(fTail)3:fTailjpgfileNamenamestr(number)。fTailself。saveImg(imageURL,fileName)number1保存头像defsaveIcon(self,iconURL,name):splitPathiconURL。split(。)fTailsplitPath。pop()fileNamenameicon。fTailself。saveImg(iconURL,fileName)保存个人简介defsaveBrief(self,content,name):fileNamenamename。txtfopen(fileName,w)printu正在偷偷保存她的个人信息为,fileNamef。write(content。encode(utf8))传入图片地址,文件名,保存单张图片defsaveImg(self,imageURL,fileName):uurllib。urlopen(imageURL)datau。read()fopen(fileName,wb)f。write(data)printu正在悄悄保存她的一张图片为,fileNamef。close()创建新目录defmkdir(self,path):pathpath。strip()判断路径是否存在存在True不存在FalseisExistsos。path。exists(path)判断结果ifnotisExists:如果不存在则创建目录printu偷偷新建了名字叫做,path,u的文件夹创建目录操作函数os。makedirs(path)returnTrueelse:如果目录存在则不创建,并提示目录已存在printu名为,path,的文件夹已经创建成功returnFalse将一页淘宝MM的信息保存起来defsavePageInfo(self,pageIndex):获取第一页淘宝MM列表contentsself。getContents(pageIndex)foritemincontents:item〔0〕个人详情URL,item〔1〕头像URL,item〔2〕姓名,item〔3〕年龄,item〔4〕居住地printu发现一位模特,名字叫,item〔2〕,u芳龄,item〔3〕,u,她在,item〔4〕printu正在偷偷地保存,item〔2〕,的信息printu又意外地发现她的个人地址是,item〔0〕个人详情页面的URLdetailURLitem〔0〕得到个人详情页面代码detailPageself。getDetailPage(detailURL)获取个人简介briefself。getBrief(detailPage)获取所有图片列表imagesself。getAllImg(detailPage)self。mkdir(item〔2〕)保存个人简介self。saveBrief(brief,item〔2〕)保存头像self。saveIcon(item〔1〕,item〔2〕)保存图片self。saveImgs(images,item〔2〕)传入起止页码,获取MM图片defsavePagesInfo(self,start,end):foriinrange(start,end1):printu正在偷偷寻找第,i,u个地方,看看MM们在不在self。savePageInfo(i)传入起止页码即可,在此传入了2,10,表示抓取第2到10页的MMspiderSpider()spider。savePagesInfo(2,10)tool。pyauthorCQCcoding:utf8importre处理页面标签类classTool:去除img标签,17位空格,removeImgre。compile(img。?{1,7})删除超链接标签removeAddrre。compile()把换行的标签换为replaceLinere。compile(tr)将表格制表td替换为replaceTDre。compile(td)将换行符或双换行符替换为replaceBRre。compile(
)将其余标签剔除removeExtraTagre。compile(。?)将多行空行删除removeNoneLinere。compile()defreplace(self,x):xre。sub(self。removeImg,,x)xre。sub(self。removeAddr,,x)xre。sub(self。replaceLine,,x)xre。sub(self。replaceTD,,x)xre。sub(self。replaceBR,,x)xre。sub(self。removeExtraTag,,x)xre。sub(self。removeNoneLine,,x)strip()将前后多余内容删除returnx。strip()
以上两个文件就是所有的代码内容,运行一下试试看,那叫一个酸爽啊
看看文件夹里面有什么变化
不知不觉,海量的MM图片已经进入了你的电脑,还不快快去试试看!!!
女学生看完复联4嚎啕大哭停不下来,因过度通气被送医IT之家4月25日消息日前,《复仇者联盟4》在全球热映,不过在宁波某电影院,一位21岁的女大学生小丽,在电影院观看刚上映的《复联4》时,因为情绪过于激动,嚎啕大哭许久,电影散场……
第4节ampnbsp基因是有遗传效应的DNA片段(新课标)第4节基因是有遗传效应的dna片段一、教学目标1。举例说明基因是有遗传效应的dna片段。2。运用数学方法说明dna分子的多样性和特异性。3。说明基因和遗……
Netflix巫师美剧将于12月16日举行首映礼IT之家10月28日消息根据CBR的报道,荷兰Netflix公司发布的一条推文似乎确认了《巫师》的首映礼日期为12月16日,有媒体认为该剧如果反响良好的话,Netflix有可能……
外媒巫师美剧将在11月1日播出IT之家9月12日消息根据WCCFTECH的报道,奈飞的Giovanni最近谈到了《巫师》美剧的播出日期,他表示该剧可能在11月1日正式上线。据悉,《巫师》第一季的主要拍……
印度学生组织请求封禁绝地求生影响学习IT之家1月17日消息《绝地求生》,别名吃鸡,是目前在全球都算上是非常火爆的游戏之一了。但并不是所有人都喜欢这款游戏,比如印度就有些学生认为《绝地求生》手游这个游戏不好,要求政……
微信部分公众号推送双倍红包返利诈骗活动,200多账号已封禁IT之家2月23日消息今日,微信派官方发布消息称,低俗有害内容以及诈骗行为在微信公众平台中都是被拒绝的。对于低俗有害内容,微信表示包含污丧文化在内的低俗和虚假夸大内容,伤……
怎么用情投意合造句1、这对情侣情投意合,很快就要结婚了。2、这种愉快的竞赛使我们马上情投意合,坐在一起,共饮潘契酒。3、你没法博得希刺克厉夫的爱慕你不能把他当作情投意合的人。4……
忧郁的反义词忧郁,这个青春的关键词,尤其是对于女生,青春里,女生基本都忧郁过,那种美丽的、难以言喻的感觉,即使它不是那么的甜蜜,可它仍旧让人意犹未尽。下面是小编收集整理的忧郁的反义词,希望……
横扫的解释及造句横扫拼音【注音】:hengsao横扫解释【意思】:扫荡;扫除。横扫造句横扫造句:1、正在横扫阿拉伯世界的人民起义风暴是一件非常有趣的现象,他……
用大公无私成语造句的例子1、慢慢地,我感受到了母亲的甜蜜和大公无私。2、该制度涉及到公私利益的平衡。我国长期以来实行公有制和计划经济,大公无私、公大于私是这一制度下的主导思想。3、在我们球……
中国机长电影定档9月30日根据川航3U8633航班真实事件改IT之家3月21日消息据中国机长电影官方消息,日前,《中国机长》已经在西藏杀青,电影定档9月30日。由博纳影业集团出品,刘伟强执导、李锦文监制的电影《中国机长》,日前在西……
波音暂停交付737MAX客机,但会继续制造IT之家3月15日消息当地时间3月13日,波音美国官网发布最新公告,称在与美国联邦航空管理局(FAA),美国国家运输安全委员会(NTSB)及其客户协商后,波音公司支持暂停737……
大班艺术活动与反思帮蟹老板做薯条【活动设计】薯条是小朋友生活中常见的非常爱吃的食物。于是结合本班撕贴的美术特色,让幼儿锻炼手部的精细动作,并能够顺着直线撕纸片,设计了此次活动《做薯条》。活动以帮助螃蟹老板做薯……
复仇者联盟登上时代周刊雷神不在,蚁人亮了IT之家3月5日消息《复仇者联盟4:终局之战》将于2019年4月26日在美国上映。该片由安东尼罗素和乔罗素执导,小罗伯特唐尼、克里斯埃文斯、克里斯海姆斯沃斯、马克鲁法洛、斯嘉丽……
神似iPhone11VK11Max上架官网,售价6999元IT之家7月4日消息为可手机在其官网上线VK11Max,其外形与曝光的iPhone11Max基本一致。VK11Max采用刘海屏设计,后置浴霸三摄。官网显示该机号称是5G手……
永和豆浆快餐店擅用quot永和豆浆quot字样,美团需赔偿911月26日上午消息,据海淀法院官网消息,永和豆浆在大陆开展业务企业,即上海弘奇永和餐饮管理有限公司,因认为快餐店未经许可擅自在门店招牌及美团外卖网站上突出使用永和豆浆,遂以侵……
今日春分草长莺飞二月天,拂堤杨柳醉春烟IT之家3月21日消息今天是春分节气,春分是二十四节气之一,为春季九十天的中分点,公历日期约略落于每年的3月21日前后(20日~22日)。太阳到达黄经0(春分点)的日子,古时又……
今日雨水今天是正月十五元宵节,同时今天也是二十四节气之中的第2个节气雨水。雨水,位于每年正月十五前后(公历2月1820日),太阳到达黄经330。雨水和谷雨、小雪、大雪一样,都是反……
种玉米教学反思教学反思是指教师对教育教学实践的再认识、再思考,并以此来总结经验教训,进一步提高教育教学水平。小编收集了种玉米教学反思,欢迎阅读!首先,在上课之前复习《不再麻烦好妈妈》边……
ofo戴威发内部信不逃避,为每分钱每个用户负责12月19日下午消息,新浪科技获悉,ofo创始人兼CEO戴威今日发布内部信,称ofo活着才有希望,不会逃避责任,将为ofo的每一个用户和欠着的每一分钱负责。ofo近日面临……
你的筷子好温暖啊记叙文阅读答案一个寒冷落雨的下午,我回家很晚,独自一个人吃午餐。小女儿早已吃过了,但看见我吃,她快乐地凑在我身边,要我夹一块豆腐给她。我给了她。啊!她高兴地叫了起来,妈妈,你的筷……
刘强东事件女主代理律师公布录音完整版,称此前版本遭删节IT之家4月26日消息据新京报报道,4月23日,刘强东案涉事女生JingyaoLiu通过律师和中间人,向媒体提供了2018年8月30日案发当日完整视频,披露了比此前网传视频更多……
腾讯QQ20岁了,还记得那些年在QQ上做过的傻事么?2019年2月10日,QQ迎来了自己的20岁生日。相伴20年,80后早已结婚生子,最小的一批90后,也已进入双十年华。时光的洪流里,那些发生在QQ上的故事成为青春的美丽注脚。……
人民日报评26秒被别车8次行车不规范,该流两行泪IT之家2月18日消息据封面新闻消息,2月16日,驾车回家的何女士在途经成都川藏立交辅道时,遇上一辆蛇形走位汽车,26秒钟内被连续别车8次。7年多驾龄的何女士说:当时车流……