• Python爬取豆瓣电影+数据可视化,爬虫教程!


    1. 爬取数据

    1.1 导入以下模块

    1. import os
    2. import re
    3. import time
    4. import requests
    5. from bs4 import BeautifulSoup
    6. from fake_useragent import UserAgent
    7. from openpyxl import Workbook, load_workbook

    1.2 获取每页电影链接

    1. def getonepagelist(url,headers):
    2. try:
    3. r = requests.get(url, headers=headers, timeout=10)
    4. r.raise_for_status()
    5. r.encoding = 'utf-8'
    6. soup = BeautifulSoup(r.text, 'html.parser')
    7. lsts = soup.find_all(attrs={'class': 'hd'})
    8. for lst in lsts:
    9. href = lst.a['href']
    10. time.sleep(0.5)
    11. getfilminfo(href, headers)
    12. except:
    13. print('getonepagelist error!')

    1.3 获取每部电影具体信息

    1. def getfilminfo(url,headers):
    2. filminfo = []
    3. r = requests.get(url, headers=headers, timeout=10)
    4. r.raise_for_status()
    5. r.encoding = 'utf-8'
    6. soup = BeautifulSoup(r.text, 'html.parser')

    1.4 保存数据

    1. def insert2excel(filepath,allinfo):
    2. try:
    3. if not os.path.exists(filepath):
    4. tableTitle = ['片名','上映年份','评分','评价人数','导演','编剧','主演','类型','国家/地区','语言','时长(分钟)']
    5. wb = Workbook()
    6. ws = wb.active
    7. ws.title = 'sheet1'
    8. ws.append(tableTitle)
    9. wb.save(filepath)
    10. time.sleep(3)
    11. wb = load_workbook(filepath)
    12. ws = wb.active
    13. ws.title = 'sheet1'
    14. ws.append(allinfo)
    15. wb.save(filepath)
    16. return True
    17. except:
    18. return False

    2. 数据可视化

    2.1 导入以下模块

    1. import pandas as pd
    2. from pyecharts import options as opts
    3. from pyecharts.charts import Bar

    2.2 用pandas模块读取数据

    1. data = pd.read_excel('/home/mw/input/TOP2508837/TOP250.xlsx')
    2. data.head(10)

    2.3 各年份上映电影数量柱状图(纵向)

    1. def getzoombar(data):
    2. year_counts = data['上映年份'].value_counts()
    3. year_counts.columns = ['上映年份', '数量']
    4. year_counts = year_counts.sort_index()
    5. c = (
    6. Bar()
    7. .add_xaxis(list(year_counts.index))
    8. .add_yaxis('上映数量', year_counts.values.tolist())
    9. .set_global_opts(
    10. title_opts=opts.TitleOpts(title='各年份上映电影数量'),
    11. yaxis_opts=opts.AxisOpts(name='上映数量'),
    12. xaxis_opts=opts.AxisOpts(name='上映年份'),
    13. datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_='inside')],)
    14. )

    2.4 各地区上映电影数量前十柱状图(横向)

    1. def getcountrybar(data):
    2. country_counts = data['国家/地区'].value_counts()
    3. country_counts.columns = ['国家/地区', '数量']
    4. country_counts = country_counts.sort_values(ascending=True)
    5. c = (
    6. Bar()
    7. .add_xaxis(list(country_counts.index)[-10:])
    8. .add_yaxis('地区上映数量', country_counts.values.tolist()[-10:])
    9. .reversal_axis()
    10. .set_global_opts(
    11. title_opts=opts.TitleOpts(title='地区上映电影数量'),
    12. yaxis_opts=opts.AxisOpts(name='国家/地区'),
    13. xaxis_opts=opts.AxisOpts(name='上映数量'),
    14. )
    15. .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    16. )

    2.5 电影评价人数前二十柱状图(横向)

    1. def getscorebar(data):
    2. df = data.sort_values(by='评价人数', ascending=True)
    3. c = (
    4. Bar()
    5. .add_xaxis(df['片名'].values.tolist()[-20:])
    6. .add_yaxis('评价人数', df['评价人数'].values.tolist()[-20:])
    7. .reversal_axis()
    8. .set_global_opts(
    9. title_opts=opts.TitleOpts(title='电影评价人数'),
    10. yaxis_opts=opts.AxisOpts(name='片名'),
    11. xaxis_opts=opts.AxisOpts(name='人数'),
    12. datazoom_opts=opts.DataZoomOpts(type_='inside'),
    13. )
    14. .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    15. )

    最后:如果你对Python感兴趣,想要学习Python,希望可以帮到你,一起加油!以上是给大家分享的Python全套学习资料,都是我自己学习时整理的: 

    一、Python所有方向的学习路线

    Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

    图片

    图片

    二、学习软件

    工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

    图片

    三、全套PDF电子书

    书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

    图片

    四、入门学习视频全套

    我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

    图片

    图片

    五、实战案例

    光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

    图片

    图片

     **学习资源已打包,需要的小伙伴可以戳这里:【学习资料】 

  • 相关阅读:
    牛客题目——买卖股票的最好时机(一)、(二)、(三)、设计LRU缓存结构
    CSS实现文字跑马灯效果
    selenium也能过某数、5s盾..
    图扑 3D 可视化国风设计 | 科技与文化碰撞炫酷”火花“
    音视频开发常见问题(四):视频花屏和绿屏
    Jmeter常用的组件
    Java集合
    Hive3 单机版(含Derby 多用户及Spark on Hive)
    Android EditText输入限制及字符编码
    入行IC验证工程师需要提前学习哪些内容?
  • 原文地址:https://blog.csdn.net/Python_Alex/article/details/140105744