python爬取豆瓣电影并分析_爬取豆瓣电影top250提取电影分类进行数据分析

标签(空格分隔):python爬虫

一、爬取网页,获取需要内容

我们今天要爬取的是豆瓣电影top250

页面如下所示:

1460000006877726

我们需要的是里面的电影分类,通过查看源代码观察可以分析出我们需要的东西。直接进入主题吧!

1460000006877727

知道我们需要的内容在哪里了,接下来就使用我们python强大的request库先获取网页内容下来吧!获取内容后,再使用一个好用的lxml库来分析网页内容,然后获取我们的内容就可以做下一步操作了。

先贴出使用request库和lxml分析的代码

def get_page(i):

url = 'https://movie.douban.com/top250?start={}&filter='.format(i)

html = requests.get(url).content.decode('utf-8') # 使用request库获取网页内容

selector = etree.HTML(html) # 使用lxml库提取内容

'''

通过观察页面就能发现内容在

下的一部分

'''

content = selector.xpath('//div[@class="info"]/div[@class="bd"]/p/text()')

print(content)

for i in content[1::2]:

print(str(i).strip().replace('\n\r', ''))

# print(str(i).split('/'))

i = str(i).split('/')

i = i[len(i) - 1]

key = i.strip().replace('\n', '').split(' ') # 这里的strip和replace的使用目的是去除空格和空行之类

print(key)

通过获取下来的内容我们发现一部电影的各项内容都是用'/'分隔着,我们只需要提取电影分类中的东西,所以我们需要使用

i = str(i).split('/')

来把内容分隔成几项内容,因为电影分类排在最后,所以我们通过

i = i[len(i) - 1]

来获取分隔后的最后一项也就是我们需要的电影分类,还有最后一步我们需要完成的,因为一部电影里面一般都有多个电影分类的标签,所以我们还要继续分隔获取到的电影分类,并且观察可以知道电影分类之间只是用一个空格隔开,所以我们使用下面一行代码就可以分离出各个分类:

key = i.strip().replace('\n', 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个很有趣的问题,我可以为您提供一些 Python 爬取豆瓣电影短评数据并进行词云分析处理的方法,以下是具体步骤: 1. 安装必要的库 需要安装 requests, BeautifulSoup, wordcloud, jieba 等库,可以使用 pip 安装。 2. 获取豆瓣电影的短评数据 使用 requests 库获取电影的页面源代码,然后使用 BeautifulSoup 库解析 HTML 页面,找到短评的标签和类名,获取短评的文本信息。 3. 对短评数据进行分词和处理 使用 jieba 库对短评进行分词,去除停用词和无用符号,并统计词频。 4. 生成词云图 使用 wordcloud 库生成词云图,将分词处理后的结果输入 wordcloud.WordCloud() 函数,设置好字体、背景颜色、词云形状等参数,调用 generate_from_frequencies() 函数生成词云图。 以上是简单的流程,具体的代码实现可以参考以下示例代码: ```python import requests from bs4 import BeautifulSoup import jieba import wordcloud # 请求头信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 短评数据的URL url = 'https://movie.douban.com/subject/1292052/comments?start=0&limit=20&sort=new_score&status=P' # 获取电影的页面源代码 html = requests.get(url, headers=headers).text # 使用BeautifulSoup解析HTML页面 soup = BeautifulSoup(html, 'html.parser') # 获取所有短评 comments = soup.find_all('span', 'short') # 将短评文本拼接成一个字符串 text = '' for comment in comments: text += comment.get_text() # 对文本进行分词 words = jieba.cut(text) # 去除停用词和无用符号 stopwords = ['的', '了', '是', '我', '你', '他', '她', '我们', '你们', '他们', '这', '那', '还', '就', '和', '也', '不', '在', '有', '到', '个', '了', '啊', '呢', '吧', '哦', '嗯', '哈', '呀', '嘛', '了', '吗'] filtered_words = [] for word in words: if word not in stopwords and word.strip() != '': filtered_words.append(word) # 统计词频 word_count = {} for word in filtered_words: if word not in word_count: word_count[word] = 1 else: word_count[word] += 1 # 生成词云图 wc = wordcloud.WordCloud( font_path='simhei.ttf', background_color='white', width=800, height=600, max_words=200, max_font_size=100, random_state=30, ) wc.generate_from_frequencies(word_count) # 展示词云图 import matplotlib.pyplot as plt plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 这样就可以爬取豆瓣电影的短评数据并进行词云分析处理了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值