前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则之爬取豆瓣评论

正则之爬取豆瓣评论

作者头像
天钧
发布2019-07-30 14:18:14
5490
发布2019-07-30 14:18:14
举报
文章被收录于专栏:渗透云笔记渗透云笔记

首先预热下,爬取豆瓣首页

导入urllib库下的request

代码语言:javascript
复制
 import urllib.request

使用下urlopen打开网站返回HTML

代码语言:javascript
复制
 urllib.request.urlopen("https://www.douban.com/")

读一下看看拿到了什么东西,使用read(),并给douban保存方便再GUI里调用

代码语言:javascript
复制
 douban = urllib.request.urlopen("https://www.douban.com/").read()

可以独立尝试,会非常卡。简单点是用len看字节

代码语言:javascript
复制
 >>> len(douban)
 105653

爬取豆瓣评论

导入正则模块(re)

代码语言:javascript
复制
 import re

写了个例子

代码语言:javascript
复制
 #豆瓣评论爬取小例子
 import urllib.request
 import re
 douban = urllib.request.urlopen("https://movie.douban.com/subject/27199913/?from=showing").read().decode("UTF-8")
 pat = '<span>.*?</span>'
 rst = re.compile(pat).findall(douban)
 print(rst[0])

引用decode("UTF-8")对其解码为utf-8

正则为

代码语言:javascript
复制
 <span>(.*?)</span>

如何写正则与本例的细节

打开网站

代码语言:javascript
复制
 https://movie.douban.com/subject/27199913/?from=showing

右键源代码

发现评论格式为

代码语言:javascript
复制
 <span>就是山西版本的《两杆大烟枪》或者说《疯狂的石头》,将山西风光和特色与影片融合的很好,虽然还是有所瑕疵,也难逃一些俗套烂大街的剧情和段子,但是还可以。</span>

所有评论被标签包裹,可以进行抓取,使用懒惰模式进行操作

代码语言:javascript
复制
 <span>.*?</span>

"."全匹配,其细节为标签里有双引号,我们再写正则时使用单引号括起来,不要再使用双引号了

写循环把东西都显示出来

代码语言:javascript
复制
 for i in range(0,len(rst)):
     print(rst[i])

运行为

代码语言:javascript
复制
 ['一直很喜欢这种结构的电影,一圈圈地放出线团,再一段段收回,圆融又宿命。以山西籍为主的演员都挺走心的,生活的鸡飞狗走很是活灵活现,而且骆达华的出场太惊喜。导演说是改编太贵,索性自己写。但要是看过《提着心吊着胆》,会发现许多元素重合度很高,比如生意惨淡的饭店、存在问题的夫妇、警察、笨贼、拜金女、装大款……就连意外之财也是丢在饭店里。电影结尾顾虑较多,但整体完成度与幽默感不差。@平遥,特意买票支持,却来...', '算是一部跟期待打平的作品吧,中规中矩,没有惊艳,王大治倒是真有那么几分长相之外的亮点。故事一圈圈闪回,重复的部分有点多,生怕观众跟不上这个倒叙+插叙的节奏似的。四川话河南话陕西话山西话一锅烩,泱泱大中华式的热闹。想要揭示人心叵测,但终归是浅了一点。【平遥电影节2018.10.19', '这种结构挺好', '审美疲劳,这种太多了,都大同小异。从每组人物的角度,反复讲同一个事。国产电影里的歹徒劫匪都是来搞笑的,都是傻逼,呵呵。', '巧就巧在结构上。']
 一直很喜欢这种结构的电影,一圈圈地放出线团,再一段段收回,圆融又宿命。以山西籍为主的演员都挺走心的,生活的鸡飞狗走很是活灵活现,而且骆达华的出场太惊喜。导演说是改编太贵,索性自己写。但要是看过《提着心吊着胆》,会发现许多元素重合度很高,比如生意惨淡的饭店、存在问题的夫妇、警察、笨贼、拜金女、装大款……就连意外之财也是丢在饭店里。电影结尾顾虑较多,但整体完成度与幽默感不差。@平遥,特意买票支持,却来...
 算是一部跟期待打平的作品吧,中规中矩,没有惊艳,王大治倒是真有那么几分长相之外的亮点。故事一圈圈闪回,重复的部分有点多,生怕观众跟不上这个倒叙+插叙的节奏似的。四川话河南话陕西话山西话一锅烩,泱泱大中华式的热闹。想要揭示人心叵测,但终归是浅了一点。【平遥电影节2018.10.19
 这种结构挺好
 审美疲劳,这种太多了,都大同小异。从每组人物的角度,反复讲同一个事。国产电影里的歹徒劫匪都是来搞笑的,都是傻逼,呵呵。
 巧就巧在结构上。
 >>>

保存到本地

代码语言:javascript
复制
 fh = open("G:\\python\\doubanpinglun.txt","w")#打开文件并新建doubanpinglun.txt

open里的路径为本地路径

完整代码如下

代码语言:javascript
复制
 #豆瓣评论爬取小例子
 import urllib.request
 import re
 douban = urllib.request.urlopen("https://movie.douban.com/subject/27199913/?from=showing").read().decode("UTF-8")
 pat = '<span>(.*?)</span>'
 rst = re.compile(pat).findall(douban)
 print(rst)
 fh = open("G:\\python\\doubanpinglun.txt","w")#打开文件并新建doubanpinglun.txt
 for i in range(0,len(rst)):
     print(rst[i])
     fh.write(rst[i]+"\n")#写入文件
 fh.close()#关闭文件

效果

点击原文,查看完整文章,希望大家认真学习哦

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透云笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档