Python爬取附近餐馆信息代码示例


Posted in Python onDecember 09, 2017

本代码主要实现抓取大众点评网中关村附近的餐馆有哪些,具体如下:

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:\ProgramFiles\python\python.exe"D:/zhangzh/program/MyGitHub/python3-webapp-demo/www/dzdp.py 
================================抓取的页面数据======================================= 
<!DOCTYPEhtml> 
<html> 
<head> 
<metacharset="UTF-8"/> 
<metahttp-equiv="X-UA-Compatible"content="IE=edge"/> 
<script>(function(n){vare;e="//catdot.dianping.com/broker-service/api/js",n.onerror=function(n,o,r){vari=encodeURIComponent,t=+newDate();(newImage).src=e+"?error="+i(n)+"&file="+i(o)+"&line="+i(r)+"×tamp="+t}})(window);</script> 
<title>北京中关村美食-大众点评网</title> 
......此处省略 
<liclass=""> 
<divclass="pic"> 
<atarget="_blank"href="/shop/33562041" rel="external nofollow" rel="external nofollow" rel="external nofollow" title=""> 
<imgtitle="渝是乎(中关村店)"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> 
<divclass="txt"> 
<divclass="tit"> 
<aonclick="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" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
<h4>渝是乎(中关村店)</h4> 
</a> 
<divclass="promo-icon"> 
<atarget="_blank"href="/shop/33562041#waimai" rel="external nofollow"  
class="iout"title="本店支持在线下单,足不出户,外送到家!"></a> 
</div> 
<atarget="_blank"href="/search/branch/2/0_33562041/g0" rel="external nofollow"  
module="list-branch" 
class="shop-branch">分店</a> 
</div> 
<divclass="comment"> 
<spanclass="sml-rank-starssml-str50"title="五星商户"></span> 
<ahref="/shop/33562041#comment" rel="external nofollow" class="review-num"target="_blank"module="list-readreview" 
> 
<b>1536</b> 
条点评</a> 
<emclass="sep">|</em> 
<ahref="/shop/33562041" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="mean-price"target="_blank"> 
人均 
<b>¥42</b> 
</span> 
</a> 
</div> 
<divclass="tag-addr"> 
<ahref="/search/category/2/10/g102" rel="external nofollow" ><spanclass="tag">川菜</span></a> 
<emclass="sep">|</em> 
<ahref="/search/category/2/0/r1488" rel="external nofollow" ><spanclass="tag">中关村</span></a> 
<spanclass="addr">榆树林1号</span> 
</div> 
<spanclass="comment-list"> 
<span>口味<b>9.1</b></span> 
<span>环境<b>8.7</b></span> 
<span>服务<b>8.3</b></span> 
</span> 
</div> 
<divclass="svr-info"> 
......此处省略 
</script> 
</body></html> 
================================获取的餐馆信息==================================== 
第1个餐馆:重八牛府(之初入江湖店) 
第2个餐馆:纽约客美式餐厅(新中关店) 
第3个餐馆:Chatuchak加都加曼谷潮流甜品 
第4个餐馆:新净雅烹小鲜 
第5个餐馆:那家小馆(中关村店) 
第6个餐馆:谷得一 
第7个餐馆:唐廊.朴禅(当代商城店) 
第8个餐馆:小福楼餐厅 
第9个餐馆:食宝街 
第10个餐馆:渝是乎(中关村店) 
第11个餐馆:品咖啡 
第12个餐馆:小吊梨汤(融科店) 
第13个餐馆:鱼八斗老麻水煮鱼(酸菜鱼) 
第14个餐馆:鳗鳗的爱(新中关购物中心店) 
第15个餐馆:速度牛排 
Processfinishedwithexitcode0

总结

以上就是本文关于Python爬取附近餐馆信息代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python读取Android permission文件
Nov 01 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python 迭代器与生成器实例详解
May 18 Python
python实现拓扑排序的基本教程
Mar 11 Python
Django读取Mysql数据并显示在前端的实例
May 27 Python
在Pycharm中执行scrapy命令的方法
Jan 16 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
python+django+rest框架配置创建方法
Aug 31 Python
关于Python-faker的函数效果一览
Nov 28 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
Python selenium环境搭建实现过程解析
Sep 08 Python
Python可视化工具如何实现动态图表
Oct 23 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 #Python
python登录并爬取淘宝信息代码示例
Dec 09 #Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 #Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 #Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 #Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 #Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 #Python
You might like
基于mysql的论坛(2)
2006/10/09 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
js实现文字滚动效果
2016/03/03 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
财务会计人员岗位职责
2013/11/30 职场文书
探矿工程师自荐信
2014/01/24 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
关于运动会的广播稿
2015/08/19 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python
关于EntityWrapper的in用法
2022/03/22 Java/Android
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript