使用 python 脚本爬取豆瓣电影排行榜
文章目录
- 1. 脚本内容
- 2. 获取的内容
1. 脚本内容
# -*- codeing = utf-8 -*-
from bs4 import BeautifulSoup # 网页解析,获取数据
import re # 正则表达式,进行文字匹配`
import urllib.request, urllib.error # 制定URL,获取网页数据
import xlwt # 进行excel操作
#import sqlite3 # 进行SQLite数据库操作findLink = re.compile(r'<a href="(.*?)">') # 创建正则表达式对象,标售规则 影片详情链接的规则
findImgSrc = re.compile(r'<img.*src="(.*?)"', re.S)
findTitle = re.compile(r'<span class="title">(.*)</span>')
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)def main():baseurl = "https://movie.douban.com/top250?start=" #要爬取的网页链接# 1.爬取网页datalist = getData(baseurl)savepath = "豆瓣电影Top250.xls" #当前目录新建XLS,存储进去# dbpath = "movie.db" #当前目录新建数据库,存储进去# 3.保存数据saveData(datalist,savepath) #2种存储方式可以只选择一种# saveData2DB(datalist,dbpath)# 爬取网页
def getData(baseurl):datalist = [] #用来存储爬取的网页信息for i in range(0, 10): # 调用获取页面信息的函数,10次url = baseurl + str(i * 25)html = askURL(url) # 保存获取到的网页源码# 2.逐一解析数据soup = BeautifulSoup(html, "html.parser")for item in soup.find_all('div', class_="item"): # 查找符合要求的字符串data = [] # 保存一部电影所有信息item = str(item)link = re.findall(findLink, item)[0] # 通过正则表达式查找data.append(link)imgSrc = re.findall(findImgSrc, item)[0]data.append(imgSrc)titles = re.findall(findTitle, item)if (len(titles) == 2):ctitle = titles[0]data.append(ctitle)otitle = titles[1].replace("/", "") #消除转义字符data.append(otitle)else:data.append(titles[0])data.append(' ')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('<br(\s+)?/>(\s+)?', "", bd)bd = re.sub('/', "", bd)data.append(bd.strip())datalist.append(data)return datalist# 得到指定一个URL的网页内容
def askURL(url):head = { # 模拟浏览器头部信息,向豆瓣服务器发送消息"User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122 Safari / 537.36"}# 用户代理,表示告诉豆瓣服务器,我们是什么类型的机器、浏览器(本质上是告诉浏览器,我们可以接收什么水平的文件内容)request = urllib.request.Request(url, headers=head)html = ""try:response = urllib.request.urlopen(request)html = response.read().decode("utf-8")except urllib.error.URLError as e:if hasattr(e, "code"):print(e.code)if hasattr(e, "reason"):print(e.reason)return html# 保存数据到表格
def saveData(datalist,savepath):print("save.......")book = xlwt.Workbook(encoding="utf-8",style_compression=0) #创建workbook对象sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) #创建工作表col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息")for i in range(0,8):sheet.write(0,i,col[i]) #列名for i in range(0,250):# print("第%d条" %(i+1)) #输出语句,用来测试data = datalist[i]for j in range(0,8):sheet.write(i+1,j,data[j]) #数据book.save(savepath) #保存# def saveData2DB(datalist,dbpath):
# init_db(dbpath)
# conn = sqlite3.connect(dbpath)
# cur = conn.cursor()
# for data in datalist:
# for index in range(len(data)):
# if index == 4 or index == 5:
# continue
# data[index] = '"'+data[index]+'"'
# sql = '''
# insert into movie250(
# info_link,pic_link,cname,ename,score,rated,instroduction,info)
# values (%s)'''%",".join(data)
# # print(sql) #输出查询语句,用来测试
# cur.execute(sql)
# conn.commit()
# cur.close
# conn.close()# def init_db(dbpath):
# sql = '''
# create table movie250(
# id integer primary key autoincrement,
# info_link text,
# pic_link text,
# cname varchar,
# ename varchar ,
# score numeric,
# rated numeric,
# instroduction text,
# info text
# )
#
#
# ''' #创建数据表
# conn = sqlite3.connect(dbpath)
# cursor = conn.cursor()
# cursor.execute(sql)
# conn.commit()
# conn.close()# 保存数据到数据库if __name__ == "__main__": # 当程序执行时# 调用函数main()# init_db("movietest.db")print("爬取完毕!")
2. 获取的内容
参考:
Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
使用 python 脚本爬取豆瓣电影排行榜相关推荐
- python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中
我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...
- python爬虫爬取豆瓣电影排行榜,并写进csv文件,可视化数据分析
#1.爬取内容,写进csv文件 import requests import re import csv #豆瓣电影排行榜,写进csv文件 url = "https://movie.doub ...
- python大规模获取豆瓣影评_python爬取豆瓣电影排行榜(requests)
''' 爬取豆瓣电影排行榜 设计思路: 1.先获取电影类型的名字以及特有的编号 2.将编号向ajax发送get请求获取想要的数据 3.将数据存放进excel表格中 ''' 环境部署: 软件安装: 模块 ...
- python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和电影图片,分别保存到csv文件和文件夹中
python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和图片,分别保存到csv文件和文件夹中. 爬取的数据包括每个电影的电影名 , 导演 ,演员 ,评分,推荐语,年份,国家,类型. py如果 ...
- [爬虫] 爬取豆瓣电影排行榜
申明:本文对爬取的数据仅做学习使用,不涉及任何商业活动,侵删 爬取豆瓣电影排行榜 这是一个Scrapy框架入门级的项目, 它可以帮助我们基本了解Scrapy的操作流程和运行原理 这次我们要做例子的网站 ...
- Python爬虫 爬取豆瓣电影TOP250
Python爬虫 爬取豆瓣电影TOP250 最近在b站上学习了一下python的爬虫,实践爬取豆瓣的电影top250,现在对这两天的学习进行一下总结 主要分为三步: 爬取豆瓣top250的网页,并通过 ...
- 爬取豆瓣电影排行榜,并制作柱状图与3d柱状图
**爬取豆瓣电影排行榜,并简单制作柱状图 一.首先,我们需要获取页面的信息,下图是从排行第25到50的电影,由此可见start可以想象为偏移量,我们把start的值换为0,得到了第一到25排名的电影, ...
- Python爬虫爬取豆瓣电影评论内容,评论时间和评论人
Python爬虫爬取豆瓣电影评论内容,评论时间和评论人 我们可以看到影评比较长,需要展开才能完整显示.但是在网页源码中是没有显示完整影评的.所以我们考虑到这部分应该是异步加载的方式显示.所以打开网页的 ...
- Scrapy框架学习 - 爬取豆瓣电影排行榜TOP250所有电影信息并保存到MongoDB数据库中
概述 利用Scrapy爬取豆瓣电影Top250排行榜电影信息,并保存到MongoDB数据库中 使用pymongo库操作MOngodb数据库 没有进行数据清洗 源码 items.py class Dou ...
- python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...
最新文章
- 基于卷积神经网络的垃圾图像分类算法
- 在一台Mac上不同平台同时使用多个Git账号
- 前端三十二:超链接(a标签)
- 基于element-ui实现table可配置化
- sscanf取固定长度的int_翠屏摇臂式取水泵船长沙水泵厂专业设计中大泵业
- 连续投影算法_中航国画荣获“2020 IAV国际视听嘉年华” 大屏幕投影显示行业三大奖项!...
- YYModel Summary
- html块左右排列,html – 如何均匀地排列多个内嵌块元素?
- channelinboundhandler中都包含了哪一类的方法_标准气体的分类类别与相关气体配置方式方法...
- Android音视频三-AndroidStudio整合FFmpeg项目+FFmpeg视频解码
- web开发技术栈(后端)
- python列表所有元素平均值_python—组合数据类型
- java基于springboot校园音乐点歌网站平台ssm
- 复盘:企业微信中国发展简史
- 玩平衡小车系列—TB6612FNG与直流电机控制教程
- ibm服务器维修论坛,IBM通病
- 文件已经删除,但是空间没有释放的异常
- 解决/proc/sys/kernel/yama/ptrace_scope to 0的问题
- Html 所有触发事件
- SSM校园好货APP的设计与实现毕业设计源码121619