python爬取标签p内的数据_python进阶技巧,利用python爬取电影数据

近年来随着国内电影市场的繁荣,电影评分及趋势分析成为一个热点研究课题,有很多人对其数据起伏投之以极大的热情。电影趋势分析可以通过用户对于不同电影类型评分的变化分析让影业公司了解到用户的喜好,有利于电影事业的发展.

fe123883866740a50517039bddec7aa0.png

用python爬虫爬取豆瓣电影数据

豆瓣电影上有很多关于每一部电影的信息,但豆瓣电影对数据爬虫的 IP 限制无法直接获取目标电影的全部数据,由于豆瓣网是一个具有反爬虫功能的网站,所以在做网络数据爬虫时进行了浏览器访问模拟,通过分析网页的源代码,用BeautifulSoup获取所需要的数据。

为了能够更好地分析不同电影类型热度及评分的分布情况,在获取数据时爬取豆瓣2020年公映的全部电影类型和评分数据进行分析.通过类型评分的对比分析,更能反映观众对不同类型电影的偏好.

28ed534c595a56569ddb667426694137.png

爬取2020年公映电影,首先通过进入豆瓣网站进入2020年公映电影页面,获取该页面的 URL,通过查看网页源代码找到目标数据的位置,再使用urlopen把每部电影的整个

代码提取出来,然后使用BeautifulSoup对爬取的代码进行提取。

每部电影的具体介绍都包含在一对div中

33ff1b221ab8202e9d5e8dc4c5b43638.png

获取步骤

获取数据的主要代码如下:

def get_html(url): # 通过url获取网页内容

message = urllib2.urlopen(url)

return message.read()

def get_movie(html): #用soup提取每个电影的全部信息,以列表返回

soup = BeautifulSoup(html)

movie_list = soup.find_all(′div′,

class_=′bd doulist-subject′)

return movie_list

def get_movie_1(movie):

message=[] # 用于存储提取出来的电影信息

soup = BeautifulSoup(str(movie))

title = soup.find_all(′div′,class_=′title′)

soup_title = BeautifulSoup(str(title[0]))

for line in soup_title.stripped_strings:

#提取 里的内容

message.append(line)

num = soup.find_all(′span′)

message.append(num[1].contents[0])

soup_num = BeautifulSoup(str(num[0]))

for line in soup_num.stripped_strings:

#对获取到的里的内容进行提取

message = message + line

info = soup.find_all(′div′,class_=′abstract′)

soup_info = BeautifulSoup(str(info[0]))

message_str = “”

for line in soup_info.stripped_strings:

# 提取

里的内容

message_str = message_str + line

message.append(message_str)

return message # 返回提取到的结果

cc16114eb32bc2bf1cf273e0b4e20f89.png

为方便数据可视化分析,运用Python语言对数据进行预处理,清洗无用信息,去除无评分电影.整理后便可以进行分析。

五、共享识刻

如果你处于想学python或者正在学习python,python的教程肯定是少不了的。说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的python全套教程,共计约400集,另附60本PDF电子书籍免费分享给大家!

f9097ecdbf444bcf2c33e34f56c1675b.png

能用到这些资料的可以关注下小编,并在后台私信小编:“python”即可领取。希望能帮助到各位。也希望每位用心学习python的朋友,日后都能成为一名合格的python程序员。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值