今天找了一个网站练练手,并且练习做了一下词图云,爬取了猫眼电影上的总票房top300的电影名称及其上映时间,免费分享出来 源代码如下
import requests
from lxml import etree
import time
import random
import csv
import pandas
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import matplotlib
url = 'https://piaofang.maoyan.com/rankings/year'
ua_pool = ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60',
'Opera/8.0 (Windows NT 5.1; U; en)',
'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50',
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',
'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 ',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36',
'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER',
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)',
'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0']
headers = {
'User-Agent': random.choice(ua_pool),
'Referer': 'https://piaofang.maoyan.com/rankings/year'
}
response = requests.get(url,headers = headers).text
# print(response)
xml = etree.HTML(response)
movie = xml.xpath('//*[@id="ranks-list"]/ul/li[2]/p/text()')
# print(movie)
movie_name = []
movie_data = []
for i in movie[::2]:
movie_name.append(i)
for j in movie[1::2]:
movie_data.append(j)
# print(movie_name)
# print(movie_data)
with open ('猫眼电影.csv','a',newline='',encoding='utf-8')as f :
writer = csv.writer(f)
writer.writerow(['电影名称','上映时间'])
for i,j in zip(movie_name,movie_data):
writer.writerow([i , j])
data = pandas.read_csv('猫眼电影.csv')
text_column_data = data['电影名称'] + ' ' + data['上映时间']
text = ' '.join(text_column_data)
wordcloud = WordCloud(width=800, height=400, background_color='white', colormap='viridis',font_path='C:/Windows/Fonts/simhei.ttf').generate(text)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
运行结果:
仅供学习参考,禁止其他用途以及转载,其他行为与我无关!如有侵权,联系我即使删除
