import requests
from bs4 import BeautifulSoup
import traceback
# 异常处理
import xlwt
# 写入xls表
# Cookie记录登录信息,session请求
def get_content(url,headers=None,proxy=None):html=requests.get(url,headers=headers).contentreturn  htmldef get_url(html):soup =BeautifulSoup(html,'lxml')shop_url_list=soup.find_all('div',class_='tit')# class是关键字,所以不能直接用,class_就可以了# print (shop_url_list)# find是只查询一次,find_all()是查询多次返回一个列表,如果没有值就返回空# 列表推导式return [i.find('a')['href'] for i in shop_url_list]def get_detail_content(html):try:soup=BeautifulSoup(html,'lxml')price=soup.find('span',id='avgPriceTitle').textevaluation=soup.find('span',id='comment_score').find_all('span',class_='item')# 提取第一个span里面的title属性the_star=soup.find('div',class_='brief-info').find('span')['title']comments=soup.find('span',id="reviewCount").texttitle=soup.find('div',class_='breadcrumb').find('span').textaddress=soup.find('span',itemprop="street-address")['title']# u的意思是代表unicode编码print(u'店名:'+title)for i in evaluation:print(i.text)print(price)print(u'评价数量:'+comments)print(u'地址:'+address.strip())print(u'评价星级:'+the_star)print('===========================')return (title, evaluation[0].text, evaluation[1].text, evaluation[2].text, price, comments, address, the_star)except:traceback.print_exc()if __name__ =='__main__':items=[]all_url=[]fk_url=[]# 将所有商户的评论url全都打印出for i in range(0,51):start_url='https://www.dianping.com/search/category/344/10/p'+str(i)all_url.append(start_url)base_url='https://www.dianping.com/'# 表头# 如果不设置cookie有可能导致出现403错误,禁止访问headers={'User-Agent':'Mozilla/5.0(Windows NT 6.1; WOW64) AppleWebkit''Cookie' '_lxsdk_cuid = 15c862ce29774 - 0e90b90a55f72 - 414a0229 - 1fa400 - 15c862ce299c8;_lxsdk = 15c862ce29774 - 0e90b90a55f72 - 414a0229 - 1fa400 - 15c862ce299c8;_hc.v = 77b1169f - 1763 - c5b6 - ade2 - a81093a8b4cd.1496899708;PHOENIX_ID = 0a010725 - 15c862cf0e2 - 207bfe7;JSESSIONID = 6AEA99FE3A5B0BF2920C833821F8D711;aburl = 1;cy = 344;cye = changsha;_lxsdk_s = 15c862ce29c - ce2 - f25 - 8c % 7C % 7C84;__mta = 219083046.1496899711367.1496902358445.1496902376486.8'}# 把多个列表里的url里面的url存储到一个列表里去,便于查询数据for url in all_url:start_html=get_content(url)durl= get_url(start_html)for i in durl:fk_url.append(i)print(i)# 列表推导式# base_url+url打印完整urlurl_list=[base_url+url for url in fk_url]for i in url_list:detail_html=get_content(i)item=get_detail_content(detail_html)items.append(item)newTable='DZDPdemo1.xls'wb=xlwt.Workbook(encoding='utf-8')ws=wb.add_sheet('test1')headData=['商户名字','口味评分','环境评分','服务评分','人均价格','评论数量','地址','商户星级']for column in range(0,8):# 0把行定位到第一行了列 后面是设置字体ws.write(0,column,headData[column],xlwt.easyxf('font:bold on'))index =1lens=len(items)print(u'数据总长度='+str(lens))# 有多少数据# 只对列做了一个for循环,因为行列都要写入,所以做两个for循环# 多少行由列表数据决定的,有多少数据就有多少行# index代表的是行,我们从1开始是因为标题已经占据了第一行# 对list做了两次索引,第一次是商户信息拿出来,第二个索引是把商户的详细信息拿出来# 简单的来说,j就代表一个商户,i[0]相当于代表店名,i[1]相当于代表evaluation[0].text依次类推for j in range(0,lens):for i in range(0,8):ws.write(index ,i,items[j][i])index+=1wb.save(newTable)

python爬取大众点评网商家信息以及评价,并将数据存储到excel表中(源码及注释)相关推荐

  1. python大众点评网实训报告中的参考文献_python爬取大众点评网商家信息以及评价,并将数据存储到excel表中(源码及注释)...

    import requests from bs4 import BeautifulSoup import traceback # 异常处理 import xlwt # 写入xls表 # Cookie记 ...

  2. python爬虫爬取大众点评店铺简介信息

    python爬虫爬取大众点评店铺简介信息 写作目的: 爬取目标 大众点评的保护机制 应对方法 还存在的问题 写作目的: 今天帮朋友一个忙,要爬取一些大众点评上的数据.结果发现大众点评的防爬机制还挺多的 ...

  3. python爬取大众点评数据

    python爬取大众点评数据 参考博客: python+requests+beautifulsoup爬取大众点评评论信息 大众点评评论抓取 Chrome如何获得网页的Cookies 如何查看自己访问网 ...

  4. 爬取大众点评美食店铺信息,解密_token的思路

    爬取大众点评美食店铺信息,解密_token的思路 先随意进入一个店铺的链接,例如:http://www.dianping.com/shop/127857802 进入之后打开控制台,进入之后选择xhr, ...

  5. python爬取大众点评数据_python爬虫实例详细介绍之爬取大众点评的数据

    python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python ...

  6. python爬取大众点评_浅谈python爬取58同城,大众点评这两个网站

    1.爬取58同城租房网遇到的坑:我爬了一页数据被封了ip,此时的我是非常的不爽,才十几条数据就封我,于是我就想着一定得找ip代理来解决这个问题,后面就写了个ip代理去弄,另外把之前头部信息ua改成了u ...

  7. python爬取大众点评_Python爬虫,获取大众点评上海地区的餐饮信息!

    需求:获取大众点评官网上上海地区的全部餐饮信息(店名,商圈,星级,评论数,人均数,口味评分,环境评分,服务评分,地址,电话等信息) 分析:餐饮种类分为18种,每一种下面又有子分类! 接着我们拿一个种类 ...

  8. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  9. python爬取大众点评_Python 爬取大众点评 50 页数据,最好吃的成都火锅竟是它!...

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 胡萝卜酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

最新文章

  1. NoSQL数据库探讨 - 为什么要用非关系数据库?
  2. CNC加工中心刀柄类型
  3. 如何避免眼高手低?(转载)----希望初入职场的朋友共勉吧!
  4. Caffe学习系列(20):用训练好的caffemodel来进行分类
  5. anaconda中的python如何进行关联分析_浅析python,PyCharm,Anaconda三者之间的关系
  6. 查询缓存---Mybatis学习笔记(十)
  7. 在WinForm程序中嵌入ASP.NET
  8. power bi可视化表_如何使用Power BI可视化数据?
  9. 李彦宏:自动驾驶是起点,终局是智能交通;iPhone15将搭载苹果自研5G基带芯片;英特尔收购Linutronix|极客头条...
  10. Javascript的一个生产PDF的库: unicode和中文问题的解决
  11. EasyDrv 3.5 Beta 1.5驱动选择工具最新版
  12. cmder 下载与简单设置
  13. Imagenet与ILSVRC数据集介绍
  14. tomcat是干什么的? 什么叫web容器以及作用?
  15. 流媒体学习之路(mediasoup)——simulcast 与 svc 简介(7)
  16. OpenGL ES OpenGL WebGL EGL WGL 区别
  17. 渠道商用假量冒充真实用户:开发者求给条活路
  18. matlab的上机报告,数理统计和Matlab上机报告.doc
  19. Android一点 仿淘宝购物车动画
  20. Android 听筒扬声器切换 并且监听音量变化

热门文章

  1. Mac Cornerstone 账号密码都对 Unable to connect to a repository at URL 'svn://XXXX@XX.XX.XX.XX'
  2. vignette滤镜效果
  3. 大卫张翻译:敏捷宣言的历史(敏捷宣言诞生记)| 真北敏捷低调分享
  4. matlab扩频仿真,#基于matlab的直接序列扩频通信系统仿真
  5. 我叫白洞,这是我的起源故事
  6. sun公司的java入门
  7. 关于Folx GO+for Mac的种子、下载及使用教程
  8. 3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation
  9. oracle 查重复数,excel某列怎么查重复数
  10. laravel 集成采集_php laravel 万能采集器