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. ESI计算机排名2021年01月,喜忧参半!2021年5月ESI世界大学排行榜,21个学科排名数据分析!...
  2. thinkphp学习笔记7—多层MVC
  3. [转]新版.Net开发必备十大工具
  4. 【学习笔记】JSON基础概念简介
  5. 字节跳动 Flink 单点恢复功能实践
  6. bzoj3895: 取石子(博弈论,记忆化搜索)
  7. gitee怎么仓库间传文件_实现一个简单的基于码云(Gitee) 的 Storage
  8. RTSP摄像机为什么还保留MJPEG编码格式
  9. VM : linux虚拟机上挂在U盘
  10. java day03【 流程控制语句】
  11. PostgreSQL-13-缺失值处理
  12. Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216  java c# php js.docx
  13. c语言 十进制转十六进制算法,十进制转十六进制算法
  14. python 使用公司邮箱发邮件_python 使用腾讯企业邮箱发送邮件
  15. 区块链 交易和区块数据存在哪儿
  16. 【Java】Feil类概述
  17. 易语言程序c盘路径,易语言取文件路径的操作教程
  18. 准PR控制的谐波抑制方法
  19. MBR15200FAC-ASEMI塑封肖特基二极管MBR15200FAC
  20. Python数据科学环境配置

热门文章

  1. python机器学习 | SVM算法介绍及实现
  2. 【Paper Reading】Privacy-Preserving Aggregation in Federated Learning: A Survey
  3. 第11周项目7-呵呵,真是太乐(泰勒)了
  4. unity3d调用android方法,Unity3D 调用Android原生方法2
  5. SPSS饼图【012-4期】
  6. 今日美食推荐html代码,美食今日推荐.html
  7. 《小乌龟投资智慧:如何在投资中以弱胜强》书中的精髓:认清投资中常犯的错误,开启智慧投资之路。
  8. zk-creds: Flexible Anonymous Credentials from zkSNARKs and Existing Identity Infrastructure
  9. Mac地址修改器:WiFiSpoof Mac版
  10. 【UI自动化】微信群聊未添加人数统计