前言:

在开始本文之前,我非常建议先学习下我写的第一篇爬虫练习的文章:https://blog.csdn.net/hahameier/article/details/110558398,里面有涉及到一些基本的东西。

在本文中,我会循序渐进,从爬取两个信息来带大家熟悉和学习下整体的流程(代码较少,帮助小白克服一堆代码的恐惧),然后才会延伸至多个信息的爬取。

本文将会非常适合知道了一些爬虫的基础知识,但是还没用实际例子来尝试的朋友。

参考链接:

1、百度大脑的教程《深度学习导论与应用实践》第二章节的课后习题:
https://aistudio.baidu.com/aistudio/projectDetail/101811
【但是代码部分已经不适用于现在的版本了,需要进行重构,本文会给出自己写的能运行的最新版的代码。】
2、上一篇自己写的爬虫练习:https://blog.csdn.net/hahameier/article/details/110558398

核心代码:

1、爬取所需要的内容:

    def getContent(self, html):findTitle = re.compile(r'<span class="title">(.*)</span>')  # 找到片名findLink = re.compile(r'<a href="(.*?)">')  # 找到影片详情链接datalist = []for item in html.find_all('div', class_='item'):  # 找到每一个影片项data = []item = str(item)  # 转换成字符串link = re.findall(findLink, item)[0]data.append(link)  # 添加详情链接titles = re.findall(findTitle, item)# 片名可能只有一个中文名,没有外国名;但我们只取中文名if len(titles) == 2:ctitle = titles[0]data.append(ctitle)  # 添加中文片名otitle = titles[1].replace("/", "")  # 去掉无关符号else:data.append(titles[0])  # 添加中文片名datalist.append(data)return datalist

2、保存所爬取的内容:

    def saveData(self, datalist):book = xlwt.Workbook(encoding='utf-8', style_compression=0)sheet = book.add_sheet('豆瓣电影Top25', cell_overwrite_ok=True)col = ('电影详情链接', '影片中文名')for i in range(0, 2):sheet.write(0, i, col[i])  # 列名for i in range(0, 25):for j in range(0, 2):print(datalist[i][j])sheet.write(i+1, j, datalist[i][j])  # 数据book.save(self.path)  # 保存

完整代码:

from bs4 import BeautifulSoup
import re
import xlwt
import requestsclass GetTopMovie:def __init__(self, url):self.url = urlself.path = r'/Users/NewScenery/SelfLearning-20201203/豆瓣电影Top25.xls'self.headers = {"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS 。。。) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","referer": "https://movie.douban.com/top250?start="}  # headers用你们自己的# 获取Htmldef getHtml(self, url):res = requests.get(url, headers=self.headers)if res.status_code == 200:html = BeautifulSoup(res.text, 'html.parser')return htmldef getContent(self, html):findTitle = re.compile(r'<span class="title">(.*)</span>')  # 找到片名findLink = re.compile(r'<a href="(.*?)">')  # 找到影片详情链接findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')  # 找到评分findJudge = re.compile(r'<span>(\d*)人评价</span>')  # 找到评价人数findInq = re.compile(r'<span class="inq">(.*)</span>')  # 找到概况findBd = re.compile(r'<p class="">(.*?)</p>', re.S)  # 找到影片相关内容:导演,主演,年份,地区,类别remove = re.compile(r'                            |\n|</br>|\.*')  # 去掉无关内容datalist = []for item in html.find_all('div', class_='item'):  # 找到每一个影片项data = []item = str(item)  # 转换成字符串# print(item)link = re.findall(findLink, item)[0]data.append(link)  # 添加详情链接titles = re.findall(findTitle, item)if len(titles) == 2:  # 中文名字,其他名字ctitle = titles[0]data.append(ctitle)  # 添加中文片名otitle = titles[1].replace("/", "")  # 去掉无关符号else:data.append(titles[0])  # 添加中文片名rating = re.findall(findRating, item)[0]data.append(rating)  # 添加评分judgeNum = re.findall(findJudge, item)[0]data.append(judgeNum)  # 添加评论人数inq = re.findall(findInq, item)if len(inq) != 0:inq = inq[0].replace("。", "")  # 去掉句号data.append(inq)  # 添加概况else:data.append(' ')  # 留空bd = re.findall(findBd, item)[0]bd = re.sub(remove, "", bd)bd = re.sub('<br(\s+)?\/?>(\s+)?', " ", bd)  # 去掉<br >bd = re.sub('/', " ", bd)  # 替换/data.append(bd.strip())datalist.append(data)return datalistdef saveData(self, datalist):book = xlwt.Workbook(encoding='utf-8', style_compression=0)sheet = book.add_sheet('豆瓣电影Top25', cell_overwrite_ok=True)col = ('电影详情链接', '影片中文名')for i in range(0, 2):sheet.write(0, i, col[i])  # 列名for i in range(0, 25):for j in range(0, 2):print(datalist[i][j])sheet.write(i+1, j, datalist[i][j])  # 数据book.save(self.path)  # 保存def func(self):url = self.urlself.saveData(self.getContent(self.getHtml(url)))if __name__ == '__main__':b = GetTopMovie('https://movie.douban.com/top250?start=')     # 获取前25部电影b.func()print('爬取并保存成功!')

后记:

如果对你有收获,请不要吝惜你的双手,给我点个赞吧~哈哈哈
如果有问题的小伙伴可以留言~
要一点一点的进步哦~

2020-爬虫学习-实战练习:爬取豆瓣电影排名前25部的电影信息相关推荐

  1. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

  2. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)

    今天我们来爬取一下豆瓣网上排名前250的电影. 需求:爬取豆瓣网上排名前250的电影,然后将结果保存至一个记事本里. 开发环境: python3.9 pycharm2021专业版 我们先观察网页,看看 ...

  3. Python爬虫学习---------根据分类爬取豆瓣电影的电影信息

    代码的入口: if __name__ == '__main__': main() #! /usr/bin/python3 # -*- coding:utf-8 -*- # author:Sirius. ...

  4. Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除)

    Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除) import requests from bs4 import BeautifulSoup import ti ...

  5. Python网络爬虫:利用正则表达式爬取豆瓣电影top250排行前10页电影信息

    在学习了几个常用的爬取包方法后,转入爬取实战. 爬取豆瓣电影早已是练习爬取的常用方式了,网上各种代码也已经很多了,我可能现在还在做这个都太土了,不过没事,毕竟我也才刚入门-- 这次我还是利用正则表达式 ...

  6. Python爬虫入门 | 7 分类爬取豆瓣电影,解决动态加载问题

      比如我们今天的案例,豆瓣电影分类页面.根本没有什么翻页,需要点击"加载更多"新的电影信息,前面的黑科技瞬间被秒--   又比如知乎关注的人列表页面:   我复制了其中两个人昵称 ...

  7. python爬虫(一)爬取豆瓣电影排名前50名电影的信息

    python爬虫(一)爬取豆瓣电影排名前50名电影的信息 在Python爬虫中,我们可以使用beautifulsoup对网页进行解析. 我们可以使用它来爬取豆瓣电影排名前50名的电影的详细信息,例如排 ...

  8. python爬虫学习 之 定向爬取 淘宝商品价格

    python爬虫学习 之 定向爬取 淘宝商品价格 import requests import redef getHTMLText(url):try:r = requests.get(url, tim ...

  9. 第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的步骤方法)

    第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的想法) 名称:定向爬取--中国大学排名定向爬取 首先,爬之前,看看你要定向爬取的网站和数据是什么类型的? 打开你要爬取网站, ...

最新文章

  1. 节点部署_国际电联设定大星座部署节点要求
  2. python读文件代码-简单了解Python读取大文件代码实例
  3. ASP.NET文件上传和下载
  4. C++(十)——模板(上)
  5. 马斯克又要搞事情,不锈钢材质的Space X“星际飞船”正式亮相
  6. python transform方法_Python transforms.BboxTransformFrom方法代码示例
  7. 数据结构--栈和队列记事本
  8. 啦啦外卖小程序上传提示43003解决办法
  9. 想做数字孪生项目?这款数据可视化软件值得你了解
  10. 上位机和FPGA开发板--串口通信实验
  11. 算法竞赛宝典 递归算法 地盘划分
  12. linux docker启动指定字符集,【字符集】解决docker 容器中中文乱码问题
  13. css3 3d特效汇总
  14. 【转】正则表达式高级学习技巧
  15. c语言程序项目设计三角函数,《C语言及程序设计》实践参考——编制三角函数表...
  16. 很全的大数据分析平台
  17. 建设一个SaaS平台需要知道什么,做什么
  18. 从程序员到架构师的转型思维的转变 NLP思维利器(二)
  19. JMS(Java Messaging Service)基础
  20. Websocket无法连接

热门文章

  1. 英语中10类对女人的搞笑称呼
  2. 苹果cms怎么推荐视频到网站首页
  3. 想要进入IB国际学校,这些证书你要知道
  4. Flash原生文字描边
  5. mtb检出_Xpert MTB/RIF法和涂片法检测痰液结核分枝杆菌的比较
  6. 现货黄金白银的致命伤:偏执
  7. ThinkPad 开机总提示找到新硬件 PCI Device
  8. ios mailto:// 用邮箱发邮件_英雄联盟手游公测,安卓/苹果iOS注册最新下载安装教程!...
  9. bibli直播弹幕实时爬取
  10. 【C++·Qt】Qt透明无边框窗口以及拖动