1.添加请求头,防止被拦截

dic = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36"
}

2.预编译正则表达式,用于过滤无用信息

# cinema_name:电影名;Release_date:上映日期;
# grade:评分 ;Evaluation_number:评价人数;筛选出如下四个数据;
obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<cinema_name>.*?)'r'</span>.*?<p class="">.*?<br>(?P<Release_date>.*?)&nbsp.*?'r'<span class="rating_num" property="v:average">(?P<grade>.*?)</span>.*?'r'<span>(?P<Evaluation_number>.*?)</span>', re.S)

3.获取网页内容

250条数据一共有十页,所以需要获取十页网页的内容

# 获取当前页数为page的网页对象并返回,这个对象包含了该网页的所有数据
def get_web_content(page):url = 'https://movie.douban.com/top250?start=%d&filter='%(page)web_content = requests.get(url, headers=dic)return web_content# 合并十页的内容
web_content_all = get_web_content(0).text
for i in range(1,10):web_content_all = web_content_all + get_web_content(i*25).text

4.对获取的内容进行过滤

select_information = obj.finditer(web_content_all)

5.保存数据

# 新建一个csv文件用于保存数据
# newline="":csv文件去掉多余换行
Data_file = open("data.csv", mode="w", newline="")
csv_writer = csv.writer(Data_file)# 将抓取的信息转换为字典存储并且写入csv文件
for i in select_information:dic = i.groupdict()dic['Release_date'] = dic['Release_date'].strip()csv_writer.writerow(dic.values())Data_file.close()
print("over!")

6.完整代码

import requests
import re
import csv# 添加请求头,防止被拦截
dic = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36"
}# 获取当前页数为page的网页对象并返回,这个对象包含了该网页的所有数据
def get_web_content(page):url = 'https://movie.douban.com/top250?start=%d&filter='%(page)web_content = requests.get(url, headers=dic)return web_content# compile:预编译正则表达式,可以重复使用
obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<cinema_name>.*?)'r'</span>.*?<p class="">.*?<br>(?P<Release_date>.*?)&nbsp.*?'r'<span class="rating_num" property="v:average">(?P<grade>.*?)</span>.*?'r'<span>(?P<Evaluation_number>.*?)</span>', re.S)# 获取10页共250数据网页内容text
web_content_all = get_web_content(0).text
for i in range(1,10):web_content_all = web_content_all + get_web_content(i*25).text# 开始匹配
select_information = obj.finditer(web_content_all)# 新建一个csv文件用于保存数据
# newline="":csv文件去掉多余换行
Data_file = open("data.csv", mode="w", newline="")
csv_writer = csv.writer(Data_file)# 将抓取的信息转换为字典存储并且写入csv文件
for i in select_information:dic = i.groupdict()dic['Release_date'] = dic['Release_date'].strip()csv_writer.writerow(dic.values())Data_file.close()
print("over!")

偷偷地问一下,写这种博客违规嘛?

python正则获取豆瓣排行250相关推荐

  1. python爬虫获取豆瓣图书Top250

    在上一篇博客<python爬虫获取豆瓣电影TOP250>中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法.这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片 ...

  2. Python:实现获取 imdb 前 250 部电影算法(附完整源码)

    Python:实现获取 imdb 前 250 部电影算法 from __future__ import annotationsimport csvimport requests from bs4 im ...

  3. 使用Python爬虫获取豆瓣影评,并用词云显示

    使用Python爬虫获取豆瓣影评,并用词云显示 Python语言流行到现在,目前最受开发者喜爱的功能莫过于它的爬虫功能,以至于很多人以为Python的英语发音也是"爬虫",其实它是 ...

  4. 利用python爬虫获取豆瓣读书数据建立书单

    0. 写在前面 网络爬虫: A Web crawler, sometimes called a spider, is an Internet bot that systematically brows ...

  5. python爬虫获取豆瓣TOP25电影名称和评分

    import requests import lxml.html myheaders = {"User-Agent": "Mozilla/5.0 (Windows NT ...

  6. Python爬虫获取豆瓣电影TOP250

    最近在学python,研究了下,写了两个爬虫成功爬取了一些东西.有一个很黄很暴力,就不放出来了,还有一个比较绿色,简单,适合初学者学习,思路也比较清晰,也方便我以后再捡起来,注释写的很清楚,特把源码放 ...

  7. python大规模获取豆瓣影评_python爬取豆瓣电影排行榜(requests)

    ''' 爬取豆瓣电影排行榜 设计思路: 1.先获取电影类型的名字以及特有的编号 2.将编号向ajax发送get请求获取想要的数据 3.将数据存放进excel表格中 ''' 环境部署: 软件安装: 模块 ...

  8. 豆瓣排行250电影数据爬取

    # 查看当前挂载的数据集目录, 该目录下的变更重启环境后会自动还原 # View dataset directory. This directory will be recovered automat ...

  9. python 爬取豆瓣电影250

    目录 准备 网址 1.准备: 打开浏览器找到请求头 2 网址: https://movie.douban.com/top250?start= 代码: # -*- codeing = utf-8 -*- ...

最新文章

  1. Swift 使用WebKit动态执行javascript脚本
  2. 将Vue+Nodejs项目部署到阿里云服务器
  3. 中南民族大学计算机类有什么具体专业,中南民族大学计算机科学学院计算机科学与技术专业简介...
  4. tomcat(2)一个简单的servlet容器
  5. android 绘画笔迹回放_随时记录分享书写笔迹,EverPEN高级版套装体验
  6. 1259:【例9.3】求最长不下降序列
  7. Phinx - 数据库迁移及版本控制介绍(内含中文文档翻译)
  8. 如何将类添加到给定的元素?
  9. 编程软件python-python编程用哪个软件
  10. 装微软原版win10系统
  11. Libxml2的简单介绍及应用
  12. 简析:世博会燃印刷业激情
  13. CISP 考试教材《第 8 章 知识域:物理与网络通信安全》知识整理
  14. 照片放大模糊怎么变清晰,图片无损放大
  15. 金石无线服务器效果怎么样,天线效果不好?快来看看是不是这几个地方出了问题!...
  16. HDS USPV-VSP HP XP24000 Raid崩溃阵列损坏多盘损坏数据恢复方法思路分享
  17. 苹果IOS9为加强个人隐私信息保护强制HTTPS,APP开发者需申请SSL证书
  18. 能测试护肤品成分的软件,查化妆品成分的app
  19. ps4移植android游戏,安卓玩PS4游戏 remote play安装教程
  20. 读论文 A search-classify approach for cluttered indoor scene understanding

热门文章

  1. citespace学习总结—二、CNKI数据的导入
  2. 常用的17个运维监控系统
  3. 宜春学院计算机协会,江西省高等教育学会现代教育技术专业委员会 2019年学术研讨会在江西宜春举行...
  4. 文件下载协议 HTTP、FTP、P2P
  5. win7系统提示0x80072F8F错误代码的解决方法(已经验证)
  6. C#上位机——倒计时计时器
  7. zk-creds: Flexible Anonymous Credentials from zkSNARKs and Existing Identity Infrastructure
  8. 【JY】ETABS与Perform3D弹塑性分析功能对比示例
  9. Tomcat启动后出现乱码
  10. 背包问题的多项式时间近似解