Python批量爬取大众点评数据

打印 上一主题 下一主题

主题 780|帖子 780|积分 2340

众所周知,某点评是一直有JS加密的,所以关于它的外包一直都很贵,有些公司甚至用来面试,可见他的难度。
但是吧,最近他好像没有加密了,这~
不值钱了啊!
那当时就忍不住了,就得用Python开始整活了!

 
 

话不多说,让我们上代码!
全部代码

今天就没那么多步骤了,直接上代码!
  1. import requests
  2. import parsel
  3. url = 'https://www.dianping.com/search/keyword/344/0_%E7%81%AB%E9%94%85/p2'
  4. headers = {
  5.     'Cookie': 'fspop=test; cy=344; cye=changsha; _lxsdk_cuid=181f2b8ceedc8-00c68dfc700b1e-c4c7526-384000-181f2b8ceedc8; _lxsdk=181f2b8ceedc8-00c68dfc700b1e-c4c7526-384000-181f2b8ceedc8; _hc.v=fa46cfdd-99f6-80af-c226-f8777fc1f097.1657634607; s_ViewType=10; _lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; Hm_lvt_602b80cf8079ae6591966cc70a3940e7=1657634608,1657690542; lgtoken=0ecd60582-14f9-4437-87ad-7b55881b56df; WEBDFPID=3x389w8ww1vw5vuzy491zvxxu36989x2818u39v38389795895568429-1657776946569-1657690545731QSUUAWGfd79fef3d01d5e9aadc18ccd4d0c95072230; dper=6cfaf0f82f34d241b584d587fc92a7117ba6c082354d350ed861c0a256d00ba3beb93db7dc5485b4e2e4e4085a92126fa2e5f1dbe1b6eaefd1c814167fce943e; ll=7fd06e815b796be3df069dec7836c3df; Hm_lpvt_602b80cf8079ae6591966cc70a3940e7=1657690573; _lxsdk_s=181f60e4e6c-cad-fea-c91%7C%7C40',
  6.     'Host': 'www.dianping.com',
  7.     'Referer': 'https://www.dianping.com/search/keyword/344/0_%E7%81%AB%E9%94%85',
  8.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36',
  9. }
  10. response = requests.get(url=url, headers=headers)
  11. selector = parsel.Selector(response.text)
  12. href = selector.css('.shop-list ul li .pic a::attr(href)').getall()
  13. print(href)
  14. for index in href:
  15.     html_data = requests.get(url=index, headers=headers).text
  16.     selector_1 = parsel.Selector(html_data)
  17.     title = selector_1.css('.shop-name::text').get()  # 店名
  18.     count = selector_1.css('#reviewCount::text').get()  # 评论
  19.     Price = selector_1.css('#avgPriceTitle::text').get()  # 人均消费
  20.     item_list = selector_1.css('#comment_score .item::text').getall()  # 评价
  21.     taste = item_list[0].split(': ')[-1]  # 口味评分
  22.     environment = item_list[1].split(': ')[-1]  # 环境评分
  23.     service = item_list[-1].split(': ')[-1]  # 服务评分
  24.     address = selector_1.css('#address::text').get()  # 地址
  25.     tel = selector_1.css('.tel ::text').getall()[-1]  # 电话
  26.     dit = {
  27.         '店名': title,
  28.         '评论': count,
  29.         '人均消费': Price,
  30.         '口味': taste,
  31.         '环境': environment,
  32.         '服务': service,
  33.         '地址': address,
  34.         '电话': tel,
  35.         '详情页': index,
  36.     }
  37.     print(dit)
复制代码
 
注释我就不注释了,有点赶时间,女朋友喊我去吃饭呢!

 
 

不过没关系,还好我有先见之明,已经录了视频,都发在这里了,代码不明白的话,可以看视频有一步步的讲解。
视频地址:Python爬取大众点评
  1. # 我给大家准备了这些资料:Python视频教程、100本Python电子书、基础、爬虫、数据分析、web开发、机器学习、人工智能、面试题、Python学习路线图、问题解答!
  2. # 都放在这个扣群啦 : 279199867
复制代码
 
效果展示


本文代码只是爬取了部分内容,视频中还讲解了让数据更好看,多页爬取,保存Excel表格等等。

 
 
给大家展示一下效果

 
 

 
 

好了,今天的分享就到这,下次再见!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表