大家好,又见面了,我是你们的朋友全栈君。
本文以大众点评网为例,获取页面的餐馆信息,以达到练习使用python的目的。
1.抓取大众点评网中关村附近的餐馆有哪些
import urllib.request
import re
def fetchFood(url):
# 模拟使用浏览器浏览大众点评的方式浏览大众点评
headers = {'User-Agent',
'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'}
opener = urllib.request.build_opener()
opener.addheaders = [headers]
data = opener.open(url).read()
data = data.decode('utf')
print('================================抓取的页面数据=======================================')
print(data) # 打印抓取的页面
print('================================获取的餐馆信息====================================')
foodNameSet = set(re.compile(r'<img title="(.*?)"', re.DOTALL).findall(data))
number = 0
for i in foodNameSet:
number = number + 1
print("第%d个餐馆: %s" % (number, i))
foodUrl = "http://www.dianping.com/search/category/2/10/r1488"
fetchFood(foodUrl)
输出结果:
"D:\Program Files\python\python.exe" D:/zhangzh/program/MyGitHub/python3-webapp-demo/www/dzdp.py
================================抓取的页面数据=======================================
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<script>(function(n){var e;e="//catdot.dianping.com/broker-service/api/js",n.οnerrοr=function(n,o,r){var i=encodeURIComponent,t=+new Date();(new Image).src=e+"?error="+i(n)+"&file="+i(o)+"&line="+i(r)+"×tamp="+t}})(window);</script>
<title>北京中关村美食-大众点评网</title>
......此处省略
<li class="" >
<div class="pic" >
<a target="_blank" href="/shop/33562041" rel="nofollow" title="" >
<img title="渝是乎(中关村店)" alt="渝是乎(中关村店)" data-src="http://p0.meituan.net/ugcpic/023ff4be1a239be5b7f13ac328bc6c5d%40249w_249h_0e_1l%7Cwatermark%3D1%26%26r%3D1%26p%3D9%26x%3D2%26y%3D2%26relative%3D1%26o%3D20"/>
</a>
</div>
<div class="txt">
<div class="tit">
<a οnclick="document.hippo.ext({cl_i:10,query_id:'4ab097b5-d3b6-441b-a684-8b58c0704567'}).mv('cl_to_s',33562041);
" data-hippo-type="shop" title="渝是乎(中关村店)" target="_blank" href="/shop/33562041" >
<h4>渝是乎(中关村店)</h4>
</a>
<div class="promo-icon">
<a rel="nofollow" target="_blank" href="/shop/33562041#waimai"
class="iout" title="本店支持在线下单,足不出户,外送到家!" ></a>
</div>
<a target="_blank" href="/search/branch/2/0_33562041/g0"
module="list-branch"
class="shop-branch">分店</a>
</div>
<div class="comment">
<span class="sml-rank-stars sml-str50" title="五星商户"></span>
<a href="/shop/33562041#comment" class="review-num" target="_blank" module="list-readreview"
rel="nofollow">
<b>1536</b>
条点评</a>
<em class="sep">|</em>
<a href="/shop/33562041" class="mean-price" target="_blank" >
人均
<b>¥42</b>
</span>
</a>
</div>
<div class="tag-addr">
<a href = "/search/category/2/10/g102" ><span class="tag">川菜</span></a>
<em class="sep">|</em>
<a href = "/search/category/2/0/r1488" ><span class="tag">中关村</span></a>
<span class="addr">榆树林1号</span>
</div>
<span class="comment-list">
<span >口味<b>9.1</b></span>
<span >环境<b>8.7</b></span>
<span >服务<b>8.3</b></span>
</span>
</div>
<div class="svr-info">
......此处省略
</script>
</body></html>
================================获取的餐馆信息====================================
第1个餐馆: 重八牛府(之初入江湖店)
第2个餐馆: 纽约客美式餐厅(新中关店)
第3个餐馆: Chatuchak加都加曼谷潮流甜品
第4个餐馆: 新净雅烹小鲜
第5个餐馆: 那家小馆(中关村店)
第6个餐馆: 谷得一
第7个餐馆: 唐廊.朴禅(当代商城店)
第8个餐馆: 小福楼餐厅
第9个餐馆: 食宝街
第10个餐馆: 渝是乎(中关村店)
第11个餐馆: 品咖啡
第12个餐馆: 小吊梨汤(融科店)
第13个餐馆: 鱼八斗老麻水煮鱼(酸菜鱼)
第14个餐馆: 鳗鳗的爱(新中关购物中心店)
第15个餐馆: 速度牛排
Process finished with exit code 0
2. 抓取中关村附近的餐馆的评价信息
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149560.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...