毕设题目是对指定网页内容进行正负向判断,并输出判断结果。
所以只需要爬取单页面的内容即可。
目标网页:在途网-哈尔滨酒店评价
【第一步:客户端向目标网址(服务器)发起get请求】
import requests def get_html(url):#客户端向服务器发起get请求 headers = {# 请求的首部信息 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36' } # 利用requests对象的get方法,对指定的url发起请求 # 该方法会返回一个Response对象 response = requests.get(url, timeout=30,headers=headers) response.raise_for_status() response.endcodding = 'utf-8' # 通过Response对象的text方法获取网页的文本信息 print('res.text:',response.text)#通过response.text获取文本,通过 response.content获取图片,文件。 return response.text
response.text与response.content的区别见:link
打印res.text内容
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="applicable-device" content="pc,mobile"> <meta name="keywords" content="哈尔滨酒店点评,哈尔滨酒店点评大全,哈尔滨酒店真实点评,哈尔滨酒店详细点评,哈尔滨酒店评论大全,哈尔滨酒店真实评论。"> <meta name="description" content="在途网为您提供哈尔滨酒店点评大全,这里有真实、详细、丰富的哈尔滨酒店评论,能帮助你更细致的了解酒店,欢迎您在线垂询。"> <title>【哈尔滨酒店点评】-哈尔滨酒店评论-环境-价格–在途网</title> <link href="/jiudian/css/bootstrap.min.css" rel="stylesheet"> <link href="/jiudian/css/hotel.css" rel="stylesheet"> <!--[if lt IE 9]> <script src="/jiudian/js/html5shiv.min.js"></script> <script src="/jiudian/js/respond.min.js"></script> <![endif]--> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> </head> <body> <div class="header-top hidden-xs"> <div class="container clearfix"> <p class="welcome pull-left">您好,欢迎光临<span>在途网</span>!我们为您规划最舒适的旅途!</p> <ul class="share pull-right"> <li class="weibo"></li> <li class="wechat"></li> <li class="qqzone"></li> </ul> </div> </div> <div class="header-logo hidden-xs hidden-sm"> <div class="container clearfix"> <div class="logo pull-left"> <a href="http://www.youabc.cn/" class="logo_a"> <img src="/jiudian/img/logo.png" alt="在途网"> </a> <img src="/jiudian/img/logo_sub.png" alt="在旅途,才能在别处!"> </div> <div class="weather pull-right"></div> </div> </div> <div class="header"> <div class="container"> <nav class="navbar navbar-default"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#menu" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand visible-xs visible-sm" href="http://www.youabc.cn/">在途网</a> </div> <div class="collapse navbar-collapse" id="menu"> <ul class="nav navbar-nav"> <li><a href="http://www.youabc.cn/">首页</a></li> <li class="active"><a href="http://www.youabc.cn/jiudian/">酒店</a></li> <li><a href="http://baike.youabc.cn/">旅游知识库</a></li> <li><a href="http://www.youabc.cn/xianlu/">线路</a></li> <li><a href="http://jipiao.youabc.cn/">机票</a></li> <li><a href="http://huoche.youabc.cn/">火车票</a></li> <li><a href="http://keche.youabc.cn/">客车票</a></li> <li><a href="http://www.youabc.cn/poi/">身边服务</a></li> <li><a href="http://www.youabc.cn/techan/">特产</a></li> <li><a href="http://youlun.youabc.cn/">游轮</a></li> <li><a href="http://www.youabc.cn/ditu/">地图</a></li> </ul> </div> </nav> </div> </div> <div class="bread"> <div class="container"> <ol> <li>您当前的位置:</li> <li><a href="http://www.youabc.cn/">在途网首页</a></li> <li><a href="http://www.youabc.cn/jiudian/">酒店</a></li> <li><a href="/jiudian/comment/">酒店点评</a></li><li class="active">哈尔滨酒店点评</li> </ol> </div> </div> <div class="city-comments"> <div class="container"> <div class="row"> <div class="col-md-9"> <div class="comments"> <h2 class="title"><span>哈尔滨酒店点评</span></h2> <div class="list"><div class="comment"> <div class="author">用户: 1370476****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000019.html" target="_blank">哈尔滨龙达瑞吉商务酒店</a></div><div class="content">点评: 酒店讲究信誉,由于所乘火车晚点近一个小时,酒店仍给留房!卫生条件、服务态度、早餐质量仍像以前一样,很棒!</div> </div><div class="comment"> <div class="author">用户: 1358168****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000019.html" target="_blank">哈尔滨龙达瑞吉商务酒店</a></div><div class="content">点评: 距离火车站挺近的步行大约5分钟左右物美价廉连锁酒店的价格住三星级的宾馆设施齐全服务周到</div> </div><div class="comment"> <div class="author">用户: 1370476****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000019.html" target="_blank">哈尔滨龙达瑞吉商务酒店</a></div><div class="content">点评: 酒店很讲信誉!留房到晚间11;30,由于火车晚点,我晚间11:20到酒店仍受到热情接待!</div> </div><div class="comment"> <div class="author">用户: 1375009****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000019.html" target="_blank">哈尔滨龙达瑞吉商务酒店</a></div><div class="content">点评: 交通很方便 酒店的硬件设施也挺好,房间很安静没有杂音,周围有很多购物的地方,直接出门向上走 就可以看见家乐福</div> </div><div class="comment"> <div class="author">用户: 1375009****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000019.html" target="_blank">哈尔滨龙达瑞吉商务酒店</a></div><div class="content">点评: 离火车站很近,早餐很不错,环境比较安静,服务很周到,就是房间有时宽带不能使用,不过前台处理得很快</div> </div><div class="comment"> <div class="author">用户: 1350442****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000019.html" target="_blank">哈尔滨龙达瑞吉商务酒店</a></div><div class="content">点评: 住的比较不错,已经连续支持你们酒店了,以后继续支持,好好好好。</div> </div><div class="comment"> <div class="author">用户: 1370476****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000019.html" target="_blank">哈尔滨龙达瑞吉商务酒店</a></div><div class="content">点评: 三人间很宽敞!卫生一流!住过几次,始终如一。早餐样式丰富,很适合南北游客。谢谢!</div> </div><div class="comment"> <div class="author">用户: 1381001****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10001591.html" target="_blank">勃莱梅旅馆(哈尔滨站前店)</a></div><div class="content">点评: 宾馆地处市中心繁华地段,距离哈尔滨火车站较近,适合出差旅游的朋友,有浴缸可以泡澡,中央空调,服务态度很好</div> </div><div class="comment"> <div class="author">用户: 1309849****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10001591.html" target="_blank">勃莱梅旅馆(哈尔滨站前店)</a></div><div class="content">点评: 位置比较方便,地理较好,就是地毯较脏,价格较便宜,服务较好,水有出黄色的水,开车来找难找,坐火车来找比较方便,在火车站附近</div> </div><div class="comment"> <div class="author">用户: 1309849****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10001591.html" target="_blank">勃莱梅旅馆(哈尔滨站前店)</a></div><div class="content">点评: 地理位置较好,吃饭就是只能有单早,最好是双早,开车来找较难,若坐火车来找比较方便,它就在火车站旁。服务较好。</div> </div><div class="comment"> <div class="author">用户: 1304539****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10001591.html" target="_blank">勃莱梅旅馆(哈尔滨站前店)</a></div><div class="content">点评: 交通很便利,离火车站很近.但由于临街,噪音有些大,周边环境一般,因为只住一晚,基本没看见服务员,卫生条件还可以,服务还算好吧!</div> </div><div class="comment"> <div class="author">用户: 1380821****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10001433.html" target="_blank">哈尔滨诺曼蒂酒店</a></div><div class="content">点评: 房间很干净。300多的价格还是可以,整个房间给人感觉很舒服。买东西也比较方便,距离机场也不是特别远,下次来还住</div> </div><div class="comment"> <div class="author">用户: 1356623****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10000054.html" target="_blank">哈尔滨帕弗尔饭店</a></div><div class="content">点评: 酒店是比较早的酒店,装修比较陈旧!竟然没有商品部!服务态度还不错!</div> </div><div class="comment"> <div class="author">用户: 1360968****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10003272.html" target="_blank">哈尔滨中艺瑞宝酒店</a></div><div class="content">点评: 环境还好,就是服务稍差,员工语言生硬,服务主动性不强,早餐一般,房间电视质量不好,台也很少,有待提升。</div> </div><div class="comment"> <div class="author">用户: 1383671****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10003272.html" target="_blank">哈尔滨中艺瑞宝酒店</a></div><div class="content">点评: 该酒店在各方面的设施卫生条件及地理位置都还不错 就是早餐时间晚点了,6.30开餐就好了</div> </div><div class="comment"> <div class="author">用户: 1388070****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10007130.html" target="_blank">哈尔滨国际饭店</a></div><div class="content">点评: 俄罗斯建筑,很有特色,曾接待过很多领导人物;位置不错,交通便利,购物就餐都很方便;服务员态度很好,服务周到。当时正遇市区全面停水,但酒店保证了旅客的用水。酒店菜品味道可以,份量也足。非常值得再次光临。</div> </div><div class="comment"> <div class="author">用户: 煤矿工</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10007334.html" target="_blank">哈尔滨马迭尔宾馆</a></div><div class="content">点评: 饭店处于有名的中央大街步行街,爱逛街者绝对喜欢这里。饭店的历史达100多年,古香古色,颇有味道,这里住着不少老外。其中、晚餐自助38元/人,物有所值。但房间潮且有种霉味,为美中不足。</div> </div><div class="comment"> <div class="author">用户: bestwen</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10007334.html" target="_blank">哈尔滨马迭尔宾馆</a></div><div class="content">点评: 地段非常好,就在中央大街上,吃饭,去景点都很方便。门口服务生都会主动打招呼的。住的是最便宜的房间,房间布置相当简洁也很干净,洗漱用品齐全。大概为了让房间面积看上去大点,盥洗室没有墙壁,做了2间一样大小的厕所和淋浴房,坐在厕所里,膝盖已经碰到墙壁了。大床有点小,晚上还是挺安静的。酸奶、冰糕(就是冰淇淋球)还不错,冰棍(雪糕)没有想象的好。老建筑本身应该挺漂亮的,就是现在新刷的外墙颜色很奇怪,而且沿街的部分都租给人家开商店了,太可惜了。总之下次来还是会住这家的。</div> </div><div class="comment"> <div class="author">用户: 淡淡的淡淡</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10007334.html" target="_blank">哈尔滨马迭尔宾馆</a></div><div class="content">点评: 房间还是很干净的!服务员的态度也很不错,早餐品种稍微少了点。</div> </div><div class="comment"> <div class="author">用户: _M1316126****</div><div class="hotel">酒店: <a href="/jiudian/jiudian-10007334.html" target="_blank">哈尔滨马迭尔宾馆</a></div><div class="content">点评: 因为工作需要,必须住这家宾馆。地理位置很好,出门就是中央大街,晚上有音乐阳台表演。选择了最便宜的普通标准间,比较干净,每天有免费的矿泉水1瓶。家具比较旧,网络端口坏了,好在可以用无线网,但容易掉线。4星级房间没有吹风机,不方便。房间的位置不好,窗外有霓虹灯,影响睡眠。房间的窗帘不遮光,我们5个人全都是早上4点半就醒了。5月份天亮的真早!服务很热情,随叫随到。早餐种类少,48一位,很一般。中午和晚上的自助餐都是38,感觉比早餐好很多,花样也很多。看过新装修过的房间,设施很新,就是卫生间较小,卫生间墙壁是玻璃的那种。价格应该比普通间贵一些。</div> </div></div></div><ul class="pages"><li class="hidden-xs"><a href="/jiudian/comment-haerbin-1.html">首页</a></li> <li><a href="/jiudian/comment-haerbin-2.html">上一页</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-1.html">1</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-2.html">2</a></li><li class="hidden-xs"><span class="current">3</span></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-4.html">4</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-5.html">5</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-6.html">6</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-7.html">7</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-8.html">8</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-9.html">9</a></li><li class="hidden-xs"><a href="/jiudian/comment-haerbin-10.html">10</a></li><li><a href="/jiudian/comment-haerbin-4.html">下一页</a></li> <li class="hidden-xs"><a href="/jiudian/comment-haerbin-487.html">末页</a></li></ul> </div> <div class="col-md-3"> <div class="side-line"> <div class="tagline"></div> </div> </div> </div> </div> </div> <footer> <div class="footer-top"> <div class="container"> <div class="row"> <div class="col-xs-6 col-sm-3"> <div class="feature feature-1"> <p>专注旅行</p> <p>国内领先</p> </div> </div> <div class="col-xs-6 col-sm-3"> <div class="feature feature-2"> <p>专业品质</p> <p>精心甄选</p> </div> </div> <div class="col-xs-6 col-sm-3"> <div class="feature feature-3"> <p>全面覆盖</p> <p>景点更多</p> </div> </div> <div class="col-xs-6 col-sm-3"> <div class="feature feature-4"> <p>全程服务</p> <p>24h在线</p> </div> </div> </div> </div> </div> <div class="footer-bottom"> <div class="container"> <div class="row"> <div class="col-sm-6 col-md-4 hidden-xs"> <div class="logo"></div> </div> <div class="col-xs-12 col-sm-6 col-md-4"> <div class="copyright"> <p>© 2016-2018 在途网 youabc.cn</p> <p>联系方式:1162446839@qq.com</p> <p>ICP备案号:<a href="https://beian.miit.gov.cn" target="_blank" rel="nofollow">京ICP备17041302号-2</a></p> </div> </div> <div class="hidden"> <div class="cities"></div> </div> </div> </div> </div> </footer> <script src="/jiudian/js/jquery-1.12.4.min.js"></script> <script src="/jiudian/js/bootstrap.min.js"></script> <script>var jiudian={};</script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f0f57a241c95f5f2669d538517da5310"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>
【第二步:获取指定标签下的指定class的内容】
# BeautifulSoup对象接收html文档字符串 # lxml是html解析器 soup = BeautifulSoup(get_html(url), 'lxml') # 找出class属性值为list的div标签 comment_list = soup.find('div', {'class': 'list'}) # 找出list下的所有comment标签组成comments comments = comment_list.find_all('div', {'class': 'comment'}) comment_content = [] # 遍历comments for i in comments: try: # comments中所有div标签的class为content content = i.find('div', {'class': 'content'}).get_text().strip() # 存储爬取结果 comment_content.append(content) print('评论内容:', content) print() except AttributeError as e: continue
输出结果:
评论内容: 点评: 酒店讲究信誉,由于所乘火车晚点近一个小时,酒店仍给留房!卫生条件、服务态度、早餐质量仍像以前一样,很棒! 评论内容: 点评: 距离火车站挺近的步行大约5分钟左右物美价廉连锁酒店的价格住三星级的宾馆设施齐全服务周到 评论内容: 点评: 酒店很讲信誉!留房到晚间11;30,由于火车晚点,我晚间11:20到酒店仍受到热情接待! 评论内容: 点评: 交通很方便 酒店的硬件设施也挺好,房间很安静没有杂音,周围有很多购物的地方,直接出门向上走 就可以看见家乐福 评论内容: 点评: 离火车站很近,早餐很不错,环境比较安静,服务很周到,就是房间有时宽带不能使用,不过前台处理得很快 评论内容: 点评: 住的比较不错,已经连续支持你们酒店了,以后继续支持,好好好好。 评论内容: 点评: 三人间很宽敞!卫生一流!住过几次,始终如一。早餐样式丰富,很适合南北游客。谢谢! 评论内容: 点评: 宾馆地处市中心繁华地段,距离哈尔滨火车站较近,适合出差旅游的朋友,有浴缸可以泡澡,中央空调,服务态度很好 评论内容: 点评: 位置比较方便,地理较好,就是地毯较脏,价格较便宜,服务较好,水有出黄色的水,开车来找难找,坐火车来找比较方便,在火车站附近 评论内容: 点评: 地理位置较好,吃饭就是只能有单早,最好是双早,开车来找较难,若坐火车来找比较方便,它就在火车站旁。服务较好。 评论内容: 点评: 交通很便利,离火车站很近.但由于临街,噪音有些大,周边环境一般,因为只住一晚,基本没看见服务员,卫生条件还可以,服务还算好吧! 评论内容: 点评: 房间很干净。300多的价格还是可以,整个房间给人感觉很舒服。买东西也比较方便,距离机场也不是特别远,下次来还住 评论内容: 点评: 酒店是比较早的酒店,装修比较陈旧!竟然没有商品部!服务态度还不错! 评论内容: 点评: 环境还好,就是服务稍差,员工语言生硬,服务主动性不强,早餐一般,房间电视质量不好,台也很少,有待提升。 评论内容: 点评: 该酒店在各方面的设施卫生条件及地理位置都还不错 就是早餐时间晚点了,6.30开餐就好了 评论内容: 点评: 俄罗斯建筑,很有特色,曾接待过很多领导人物;位置不错,交通便利,购物就餐都很方便;服务员态度很好,服务周到。当时正遇市区全面停水,但酒店保证了旅客的用水。酒店菜品味道可以,份量也足。非常值得再次光临。 评论内容: 点评: 饭店处于有名的中央大街步行街,爱逛街者绝对喜欢这里。饭店的历史达100多年,古香古色,颇有味道,这里住着不少老外。其中、晚餐自助38元/人,物有所值。但房间潮且有种霉味,为美中不足。 评论内容: 点评: 地段非常好,就在中央大街上,吃饭,去景点都很方便。门口服务生都会主动打招呼的。住的是最便宜的房间,房间布置相当简洁也很干净,洗漱用品齐全。大概为了让房间面积看上去大点,盥洗室没有墙壁,做了2间一样大小的厕所和淋浴房,坐在厕所里,膝盖已经碰到墙壁了。大床有点小,晚上还是挺安静的。酸奶、冰糕(就是冰淇淋球)还不错,冰棍(雪糕)没有想象的好。老建筑本身应该挺漂亮的,就是现在新刷的外墙颜色很奇怪,而且沿街的部分都租给人家开商店了,太可惜了。总之下次来还是会住这家的。 评论内容: 点评: 房间还是很干净的!服务员的态度也很不错,早餐品种稍微少了点。 评论内容: 点评: 因为工作需要,必须住这家宾馆。地理位置很好,出门就是中央大街,晚上有音乐阳台表演。选择了最便宜的普通标准间,比较干净,每天有免费的矿泉水1瓶。家具比较旧,网络端口坏了,好在可以用无线网,但容易掉线。4星级房间没有吹风机,不方便。房间的位置不好,窗外有霓虹灯,影响睡眠。房间的窗帘不遮光,我们5个人全都是早上4点半就醒了。5月份天亮的真早!服务很热情,随叫随到。早餐种类少,48一位,很一般。中午和晚上的自助餐都是38,感觉比早餐好很多,花样也很多。看过新装修过的房间,设施很新,就是卫生间较小,卫生间墙壁是玻璃的那种。价格应该比普通间贵一些。
【完整代码】
import requests from bs4 import BeautifulSoup def get_html(url):#客户端向服务器发起get请求 headers = {# 请求的首部信息 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36' } # 利用requests对象的get方法,对指定的url发起请求 # 该方法会返回一个Response对象 response = requests.get(url, timeout=30,headers=headers) response.raise_for_status() response.endcodding = 'utf-8' # 通过Response对象的text方法获取网页的文本信息 #print('res.text:',response.text)#通过response.text获取文本,通过 response.content获取图片,文件。 return response.text if __name__ == '__main__': # 例子的url url = 'http://www.youabc.cn/jiudian/comment-haerbin-3.html' get_html(url) # BeautifulSoup对象接收html文档字符串 # lxml是html解析器 soup = BeautifulSoup(get_html(url), 'lxml') # 找出class属性值为list的div标签 comment_list = soup.find('div', {'class': 'list'}) # 找出list下的所有comment标签组成comments comments = comment_list.find_all('div', {'class': 'comment'}) comment_content = [] # 遍历comments for i in comments: try: # comments中所有div标签的class为content content = i.find('div', {'class': 'content'}).get_text().strip() # 存储爬取结果 comment_content.append(content) print('评论内容:', content) print() except AttributeError as e: continue