1.爬取豆瓣电影前250详情页面

豆瓣电影前250详情页面持久化为250个htm文件,打包文件下载链接: https://pan.baidu.com/s/1_zlZJQJtl9pPEJUGYVMYaw 密码: ehrq
文件解压后的文件夹命名为doubanSourcePages,下面代码复制到py文件中,py文件和doubanSourcePages文件夹在同一级目录下

from bs4 import BeautifulSoup as bs
import re
import pandas as pddef cssFind(movie,cssSelector,nth=1):if len(movie.select(cssSelector)) >= nth:return movie.select(cssSelector)[nth-1].text.strip()else:return ''def reFind(pattern,sourceStr,nth=1):if len(re.findall(pattern,sourceStr)) >= nth:return re.findall(pattern,sourceStr)[nth-1]else:return ''if __name__ == "__main__":movie_list =[]for i in range(1,251):print("正在解析排名第%d页"%i)fileName = "doubanSourcePages/%03d.html"%itry:with open(fileName,encoding='utf8') as file:soup = bs(file,'lxml')movie = {}movie['得分'] = cssFind(soup, 'strong[class="ll rating_num"]')movie['片名'] = cssFind(soup, 'span[property="v:itemreviewed"]')info = cssFind(soup, "div[id='info']")for item in info.split('\n')[:9]:key = item.split(":")[0]value = item.split(":")[1]movie[key] = valuemovie_list.append(movie)movie['标签'] = ','.join([k.text for k in soup.select("div.tags a")])movie['图片链接'] = soup.select('a.nbgnbg img')[0]['src']except:print("解析排名第%d页失败"%i)movie_list.append({})df = pd.DataFrame(movie_list,columns=movie_list[0].keys())df.to_excel("豆瓣电影详情信息.xlsx")

2.详情页面持久化

代码如下:

from bs4 import BeautifulSoup as bs
import requests
from time import sleepdef save_webPage(url,fileName):response = requests.get(url)response.encoding = 'utf-8'with open(fileName,'w',encoding='utf-8') as file:file.write(response.text)if __name__ == "__main__":#解析网页并将每条电影信息插入mysql数据库url_before = "https://movie.douban.com/top250?start={}"count = 0for i in range(0,250,25):url = url_before.format(i)fileName = "{}-{}.html".format(i+1,i+25)save_webPage(url,fileName)response = requests.get(url)response.encoding = 'utf-8'soup = bs(response.text, 'lxml')movie_list = soup.select("ol.grid_view li")for movie in movie_list:nextUrl = movie.select("div.hd a")[0]['href']count +=1fileName = "%03d.html"%countprint("正在把排名第%d的电影详情页面保存到本地"%count)save_webPage(nextUrl,fileName)sleep(3)

3.人员随机分组

import randomdef getGroup(lt,n):lt_len = len(lt)left = lt_len%nm = lt_len//ngroup_number_list = [m] * (n-left) + [m+1] * leftrandom.shuffle(group_number_list)group_list = []print(group_number_list)for group_number in group_number_list:group = random.sample(lt,group_number)print(group)for i in group:lt.remove(i)group_list.append(group)return group_listif __name__ == "__main__":name_str = "陶宇,王燕琪,雷杰,韦民童,余鹏,李波,雷坤,"\"石月,丁松,郑志杰,陶雨,程韶曦,葛振刚,王雪虎,李响,仲雯,王海宾"name_list = name_str.split(',')getGroup(name_list,4)

基于bs4+requests的豆瓣电影爬虫相关推荐

  1. 使用requests库豆瓣电影爬虫

    import requests from lxml import etree# 1,将目标网站的页面抓取下来 headers = {'User-Agent': 'Mozilla/5.0 (Window ...

  2. 使用Java语言开发在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户、物品的协同过滤推荐算法实现 SSM(Spring+SpringMVC+Mybatis)开发框架 机器学习、人工智能、大数据开发

    使用Java语言开发在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户.物品的协同过滤推荐算法实现 SSM(Spring+SpringMVC+Mybatis)开发框架 机器学习.人工智能.大数据开发 ...

  3. 使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户、物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline

    使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户.物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline 一.项目简 ...

  4. python豆瓣电影爬虫

    前言 作为本人的第一篇博客,不知道怎么写才好.同时作为一个编程的菜鸟,第一次分享自己的练习之作,希望能够通过写博客这种方式慢慢的提高自己的表述能力. 本人最近学习python,学习了基本的语法,就想着 ...

  5. python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和电影图片,分别保存到csv文件和文件夹中

    python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和图片,分别保存到csv文件和文件夹中. 爬取的数据包括每个电影的电影名 , 导演 ,演员 ,评分,推荐语,年份,国家,类型. py如果 ...

  6. Golang语言快速上手到综合实战(Go语言、Beego框架、高并发聊天室、豆瓣电影爬虫) 下载

    下载Golang语言快速上手到综合实战(Go语言.Beego框架.高并发聊天室.豆瓣电影爬虫) 下载地址:请加QQ:397245854 Go是Google开发的一种编译型,可并行化,并具有垃圾回收功能 ...

  7. 老板,今年有哪些大众好电影?(nodejs豆瓣电影爬虫)

    老板,今年有哪些大众好电影?(nodejs豆瓣电影爬虫) 前言 目标页面分析 设计思路 效果演示 GitHub 和源码 前言 现在看电影通常都会看豆瓣评分,虽然豆瓣本身有筛选功能,但是缺乏了一个重要元 ...

  8. 基于Python的海量豆瓣电影、数据获取、数据预处理、数据分析、可视化、大屏设计项目(含数据库)

    目录 项目介绍 研究背景 国内外研究现状分析 研究目的 研究意义 研究总体设计 网络爬虫介绍 豆瓣电影数据的采集 数据预处理 大数据分析及可视化 豆瓣影评结构化分析 大屏可视化 文本可视化 总结 每文 ...

  9. Python豆瓣电影爬虫实战(超详解)-----我的机器人女友《阿丽塔》

    写在前面 爬虫基础详见我另一篇博客:https://blog.csdn.net/weixin_43329700/article/details/86768422 我的机器人女友----<阿丽塔& ...

最新文章

  1. linux——环境变量与文件查找
  2. hadoop 动态调整mapred参数
  3. web工程导入MyEclipse 就变成Java工程 ———— 解决方案
  4. P4180-[BJWC2010]严格次小生成树【Kruskal,倍增】
  5. osg动态加载模型不显示_OSG仿真案例(8)——读取FBX格式文件并显示(无动画)...
  6. vos3000 2.1.1.5 安装包及注册机【电销电话机器人源码私有云部署 www.ruikesoft.com 正版授权 抵制盗版】
  7. 百度Android在线语音识别SDK使用方法
  8. 关于UI设计学习,推荐6个高质量的学习网站!
  9. python str center_Python str方法总结
  10. 计算机信息管理参考文献,计算机信息管理本科论文参考文献大全 计算机信息管理本科论文参考文献哪里找...
  11. 为什么要阅读——兼分享《首先,打破一切常规》[中译文]:世界顶级管理者的成功秘诀/(美)马库斯#183;白金汉,(美)柯特#183;科夫曼 著...
  12. 当MySQL想恋爱,java和navicate抢着做媒婆 ------ java连接MySQL数据库 navicat for MySQL 连接
  13. python matplotlib笔记:饼状图
  14. 硬件版--苹果ios免越狱脚本实现硬件方案
  15. atan和tan什么的差别,数学不好的人要去死啊
  16. 全国大学的戏精,都在论文致谢里了
  17. macOS Big Sur正式版下载
  18. 《Flutter 控件大全》第五十二个:Hero
  19. IE浏览器报错Unhandled promise rejection Error: 拒绝访问。文件流下载
  20. 服务器南北桥芯片 维修,[故障处理日记] 集显主板北桥虚焊故障及维修工具与技巧...

热门文章

  1. 【ES6】JS的Set和Map数据结构
  2. ListView的高级使用
  3. ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互 entity-framework(MySQL/MariaDB 版)
  4. File `listings.sty' not found. usepackage
  5. c++深拷贝和浅拷贝
  6. 【带你重拾Redis】Redis数据结构及使用场景
  7. 大白话详解Spring Security认证流程
  8. 多重采样和超级采样哪个流畅_OpenGL多重采样:结果与未使用多重采样时的结果相同...
  9. 祁阳一中2021年高考成绩查询,祁阳一中2019高考成绩喜报、一本二本上线人数情况...
  10. element vue 动态单选_软件更新丨vue-element-admin 4.0.0 beta 发布,后台集成方案