python周末吃什么_中午不知道吃什么?用Python爬取美团外卖评论帮你选餐!
分析url的网页源代码,在源代码里有我们想要的评论数据,我们可以用正则(在这里正则还是比较好用的)把我们想要的信息弄下来
开启循环,批量抓取
保存数据至文本和数据库
defparse_one_page(html):
pattern2 = re.compile( '"m_type":"0",(.*?),"username"', re.S)
items=re.findall(pattern2,html)
foritem initems:
item = "{"+ item + "}"
item=json.loads(item)
write_to_file(item)
print(item)
save_to_mongo(item)
#皮皮哥告诉了我他的独家正则匹配方法可以匹配出来,这样的确获得的item没有编码问题
defparse_one_page(html):
pattern = '"content":".*?"'
items=re.findall(pattern,html)
foritem initems:
item =eval(item.split( ':', 1)[ 1])
write_to_file(item)
print(item)
save_to_mongo(item)
#对一般正则写法获得的item进行的方法,这是从皮皮哥那里得知的,亲测有效
defparse_one_page(html):
pattern = re.compile( 'rsion_name".*?"content":(.*?),"username"', re.S)
items=re.findall(pattern,html)
#print(items)
foritem initems:
item = item.encode( 'utf-8').decode( 'unicode_escape')
write_to_file(item)
print(item)
save_to_mongo(item)
三、代码
#config.py
MONGO_URL= 'localhost'
MONGO_DB= 'meituan'
MONGO_TABLE= 'meituan'importrequests
fromrequests.exceptions importRequestException
importjson
importre
fromday31.config import*
importpymongo
client=pymongo.MongoClient(MONGO_URL)
db=client[MONGO_DB]
base_url= 'http://comment.mobilem.360.cn/comment/getComments?callback=jQuery17209056727722758744_1502991196139&baike=%E7%BE%8E%E5%9B%A2%E5%A4%96%E5%8D%96+Android_com.sankuai.meituan.takeoutnew&start='
defthe_url(url):
try:
response = requests.get(url)
ifresponse.status_code== 200:
response.encoding= 'utf-8'
returnresponse.text
returnNone
exceptRequestException:
print( '请求出错')
returnNone
defthe_total():
html=the_url(base_url)
pattern1 = re.compile( '"total":(.*?),"messages"', re.S)
Total = re.findall(pattern1, html)
Total=int( ':'.join(Total))
#print(type(Total))
show= '总计评论%d条'%Total
print(show)
write_to_file(show)
returnTotal
defparse_one_page(html):
pattern2 = re.compile( '"m_type":"0",(.*?),"username"', re.S)
items=re.findall(pattern2,html)
foritem initems:
item = "{"+ item + "}"
item=json.loads(item)
write_to_file(item)
print(item)
save_to_mongo(item)
defsave_to_mongo(result):
try:
ifdb[MONGO_TABLE].insert(result):
print( '储存到MongoDB成功',result)
exceptException:
print( '储存到MongoDB失败',result)
defwrite_to_file(content):
withopen( 'meituan_result.text', 'a',encoding= 'utf-8') asf:
f.write(json.dumps(content,ensure_ascii= False)+ 'n')
f.close()
defmain():
Total=the_total()
Total=int(Total/ 10)+ 2
fori inrange(Total):
url = base_url + str(i* 10)
ifthe_url(url)!= None:
html=the_url(url)
parse_one_page(html)
else:
print( '输完啦')
ps= 'PS:因为有些评论空,所以实际评论比抓取的少'#这是我瞎猜的
write_to_file(ps)
print(ps)
if__name__ == '__main__':
main()
四、最后得到的数据视图和文件
五、总结
1.程序报错很正常,不要一报错就问别人,先自己思考、百度
2.在数据类型处理方面的知识还要加强
3.感谢皮皮哥、感谢姚文峰前辈!
作者:1想得美
链接:http://www.jianshu.com/p/25c8b4cfda1a
作者:1想得美
链接:http://www.jianshu.com/p/25c8b4cfda1a
python周末吃什么_中午不知道吃什么?用Python爬取美团外卖评论帮你选餐!相关推荐
- python周末吃什么_中午不知道吃什么,用Python爬取美团外卖评论帮你选餐
一.介绍 朋友暑假实践需要美团外卖APP评论这一份数据,一开始我想,这不就抓取网页源代码再从中提取数据就可以了吗,结果发现事实并非如此,情况和之前崔大讲过的分析Ajax来抓取今日头条街拍美图类似,都是 ...
- python获取虎牙弹幕_教你用20行代码爬取直播平台弹幕(附源码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- python微博爬虫实战_爬虫实战(一):爬取微博用户信息
前言 最近做课设,是一个有关个人隐私安全的课题,在网上找了很多论文,最后上海交通大学的一篇硕士论文<面向社会工程学的SNS分析和挖掘>[1] 给了我很多灵感,因为是对个人隐私安全进行评估, ...
- python爬取公交车站数据_Python爬虫实例_城市公交网络站点数据的爬取方法
爬取的站点:http://beijing.8684.cn/ (1)环境配置,直接上代码: # -*- coding: utf-8 -*- import requests ##导入requests fr ...
- python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
- python微信爬取教程_python爬虫_微信公众号推送信息爬取的实例
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
- python微信公众号推送_python爬虫_微信公众号推送信息爬取的实例
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
- python爬取京东评论分析_【实战好文】|爬取京东书籍评论并分析
原标题:[实战好文]|爬取京东书籍评论并分析 这是菜鸟学Python的粉丝第10篇原创投稿 阅读本文大概需要5分钟 本篇作者:小郑同学 上周的赠书活动中,收到了楼主送的<利用Python进行数据 ...
- python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)
[一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...
最新文章
- mui ajax ab,mui.ajax中文乱码
- HDU - 2795 Billboard(线段树)
- Virtualbox中win7虚拟机中U盘不可用问题的解决
- 在HTML中使用JavaScript
- python怎么七个数字一换行_python中怎么换行?
- 升级centos6.5系统的gcc为4.8.5的简易步骤
- 虚拟机安装python包会出问题吗_虚拟机CentOS7安装python3.6.2及requests模块的问题汇总...
- 【CDAS峰会】吴喜之:数据科学的未来发展
- 炒币之止损止盈控制的艺术、投资入门
- 电子书城系统设计与实现
- 安装win10虚拟机遇到的坑
- 服务器pci光卡 系统不显示,工控机系统读取不到PCI卡的原因及解决办法
- 【计算机网络】实验1:双绞线制作
- 显著性水平 置信度 置信区间 实例讲解
- Nginx学习八:虚拟主机
- bigworld游戏服务器架构参考
- HDFS退出安全模式
- Jsoup和JsoupXpath详解
- 免费的编程中文书籍索引
- IllegalArgumentException 异常时一个不易觉察的原因
热门文章
- 简单的for()循环使用方式foreach
- Android应用开发-onNewIntent()
- 进程控制块包含的信息
- ibatis oracle function,IBATIS调用oracle function(函数)的步骤实例
- flask-SQLAlchemy 使用 session.commit() 处理异常回滚
- 清华大学《操作系统》(七):虚拟存储、覆盖、交换
- 机器学习算法之 KNN
- 【自动化测试】整理各种测试开发工具!持续更新
- SQLAlchemy()分页器paginate方法
- 计算机在输电线路设计中的应用研究,计算机在输电线路基础设计中的应用原稿(备份存档)...