python爬取豆瓣电影top250_Python 爬取豆瓣电影Top250排行榜,爬虫初试
from bs4 import BeautifulSoup
import openpyxl
import re
import urllib.request
import urllib.error
# 访问url
def ask_url(url):
# 伪装浏览器
head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}
req = urllib.request.Request(url, headers=head) # 包装
try:
response = urllib.request.urlopen(req, timeout=3) # 访问 超时3s结束
html = response.read().decode('utf-8') # 解码
return html # 返回url网页html源码
except urllib.request.HTTPError as e:
if hasattr(e, 'code'):
print(e.code)
except urllib.error.URLError as e:
if hasattr(e, 'reason'):
print(e.reason)
# 爬取网页
def crawl_web(base_url):
data_list = []
# re电影名
re_movie_name = re.compile(r'(.*?)')
# re影片详情连接
re_movie_link = re.compile(r'')
# re影片海报图片
re_movie_img = re.compile(r'', re.S)
# re电影简介
re_movie_introduction = re.compile(r'
(.*?)
', re.S)
# re评分
re_movie_score = re.compile(
r'(.*?)')
# re评分人数
re_movie_judge = re.compile(r'(.*?)人评价')
# re一句话评价
re_moive_inq = re.compile(r'(.*?)。*')
for i in range(10):
url = base_url + str(i * 25)
html = ask_url(url) # 获取网页源码
soup = BeautifulSoup(html, 'html.parser') # 解析源码
for item in soup.find_all(class_='item'):
item = str(item).replace(u'\xa0', ' ') # 获取的页面中有奇妙代码(●'◡'●),所以要去掉
data = []
# 获取需要的信息
movie_name = re.findall(re_movie_name, item)
if len(movie_name) > 1:
data.append(movie_name[0])
data.append(movie_name[1].replace('/', ''))
else: # 没有外语名也要空出来,方便后续储存
data.append(movie_name[0])
data.append('暂无')
movie_link = re.findall(re_movie_link, item)[0]
data.append(movie_link)
movie_img = re.findall(re_movie_img, item)[0]
data.append(movie_img)
movie_introduction = re.findall(re_movie_introduction, item)[0]
movie_introduction = re.sub(
r'
', ' ', movie_introduction).strip() # 存入简介时要去掉含有的html标签
data.append(movie_introduction)
movie_score = re.findall(re_movie_score, item)[0]
data.append(movie_score)
movie_judge = re.findall(re_movie_judge, item)[0]
data.append(movie_judge)
moive_inq = re.findall(re_moive_inq, item)
if len(moive_inq) == 0: # 有时候没有一句话短评,同上要空出
data.append('暂无')
else:
data.append(moive_inq[0])
# 添加到data_list
data_list.append(data)
return data_list
def save_data(save_path, data_list):
wb = openpyxl.Workbook()
ws = wb.active
ws.title = '豆瓣TOP250'
first_row = ("电影名", "其他名", "影片详情连接", "影片海报图片",
"电影简介", "评分", "评分人数", "一句话评价")
temp = 1
for i in first_row: # 生成表头
ws.cell(1, temp, i)
temp += 1
row = 1
for i in data_list: # 存入数据
row += 1
column = 1
for j in i:
ws.cell(row, column, j)
column += 1
wb.save(save_path+'豆瓣TOP250.xlsx')
return None
if __name__ == "__main__":
base_url = 'https://movie.douban.com/top250?start='
save_path = 'E:\\School\\Study\\Python\\爬虫\\'
data_list = crawl_web(base_url)
save_data(save_path, data_list)
print('Crawl over')
python爬取豆瓣电影top250_Python 爬取豆瓣电影Top250排行榜,爬虫初试相关推荐
- python 豆瓣电影top250_python 爬豆瓣电影top250
基础页面:https://movie.douban.com/top250 代码: from time import sleep from requests import get from bs4 im ...
- python爬取豆瓣排行榜电影(静态爬取)(二次爬取)
目录 python爬取豆瓣排行榜电影(静态爬取) 获取网站url 获取网站headers get请求访问url BeautifulSoup解析网站 爬取html数据 完整代码 python爬取豆瓣排行 ...
- python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)
目录 1.算法原理: 2.程序流程: 3.程序代码: 4.运行结果(部分结果展示): 5.结果分析: 1.算法原理: (1)利用import命令导入模块或者导入模块中的对象: ①利用requests库 ...
- PYTHON爬虫爬取豆瓣电影的一周口碑电影排行榜
代码前准备: 1.使用Eclipse进行开发,关于eclipse搭建python的环境见:https://www.cnblogs.com/telwanggs/p/7016803.html 2.使用bs ...
- python爬虫(一)爬取豆瓣电影排名前50名电影的信息
python爬虫(一)爬取豆瓣电影排名前50名电影的信息 在Python爬虫中,我们可以使用beautifulsoup对网页进行解析. 我们可以使用它来爬取豆瓣电影排名前50名的电影的详细信息,例如排 ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)
在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...
- python selenium爬虫豆瓣_Scrapy+Selenium爬取豆瓣电影评论
首先需要对目标网站进行分析,具体的分析这里不详细介绍.目标网站:豆瓣某个电影评论页面 https://movie.douban.com/subject/1292052/reviews,这个电影是肖申克 ...
- Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)
今天我们来爬取一下豆瓣网上排名前250的电影. 需求:爬取豆瓣网上排名前250的电影,然后将结果保存至一个记事本里. 开发环境: python3.9 pycharm2021专业版 我们先观察网页,看看 ...
- python项目开发案例集锦 豆瓣-Python第三个项目:爬取豆瓣《哪吒之魔童降世》 短评...
前面爬完网站信息图片之后,今天的又有了个小目标,最近的电影哪吒很火,去豆瓣上看了一下 影评,决定了今天主要是实现Python第三个项目:爬取豆瓣<哪吒之魔童降世> 短评,然后下载在exce ...
最新文章
- Android自定义流式布局-FlowLayout
- Linux安装Gradle
- 微服务和其他常见架构
- weblogic概览下的上下文根配置_Weblogic服务下获取上下文路劲问题
- BZOJ5289 洛谷4437:[HNOI/AHOI2018]排列——题解
- Apache Mahout:入门
- 学计算机买电脑显卡1605ti够吗,铭瑄GTX1660Ti显卡值得买吗 铭瑄GTX1660Ti终结者显卡评测...
- 程序包sun.misc不存在
- 总结CMS常见面试题
- 【基础教程】信噪比+香农公式【1748期】
- java树广度优先_如何在功能上生成树广度优先 . (使用Haskell)
- centos7网络配置总结
- 西门子S7系列PLC的主要种类及应用软件
- centos7安装部署kvm,照做就行
- microsoftvisual c++ runtime library错误
- Linux:chmod -R 777 * 是什么意思?
- Python为何能上位碾压Java?
- python内存持续增长_Python 进程内存增长解决方案
- Quartus Prime官方下载方法
- 芬兰免学费留学选拔项目“Finfly芬鸟计划”详细介绍
热门文章
- C++11标准模板(STL)- 算法(std::set_symmetric_difference)
- Leetcode 1348:推文计数
- com.monotype.android.font.ktoppo,Zawgyi Myanmar Fonts Free
- 基于eNSP的企业PON入云网络模拟
- 修改mc服务器名字,好听的mc服务器名字
- h264基础知识梳理
- Fragment XXXXXX{xxxxxxxxx} not attached to Activity
- CAD图纸显示不全?别慌,有浩辰CAD!
- 数学----三角函数公式推导
- BT源代码学习心得(五):统一网络服务接口--RawServer -- 转贴自 wolfenstein (NeverSayNever)