python采用requests+bs4爬取豆瓣top250电影信息
爬取豆瓣top250电影说明
(链接:https://movie.douban.com/top250,可爬取一页或者多页(输出电影的正标题(肖申克的救赎),副标题( The Shawshank Redemption)、其他名( / 月黑高飞(港) / 刺激1995(台))、导演和主演(导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins /…)、年份(1994)、国家(美国)、类型(犯罪 剧情)、评分(9.7)、评分人数(2072430)、名言(对应下图的希望让人自由)))
示例代码
# -*- coding: utf-8 -*-
# author:Gary
import requests # 获取网页内容
from bs4 import BeautifulSoup # 解析网页内容
import re # 正则匹配内容# 获取网页的内容
def get_html(URL):header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/79.0.3945.130 Safari/537.36'}res = requests.get(URL, headers=header) # 获取网页,并带有伪装的浏览器头,一般好的网站会有检测是不是程序访问res.encoding = res.apparent_encoding # 设置编码,防止乱码# print(res.text)#输出网页内容return res.text # 返回网页的内容# 通过bs4解析,主要是标签选择器
def ana_by_bs4(html):soup = BeautifulSoup(html, 'html.parser') # 注意需要添加html.parser解析lis = soup.select("ol li") # 选择ol li标签for li in lis:index = li.find('em').text # 索引title = li.find_all('span', class_='title') # 正标题the_title = title[0].text # 正标题if len(title) > 1: # 如果title存在两个则表明存在副标题sub_title = title[1].textelse:sub_title = ''try:other_title = li.find('span', class_='other').text # 其他标题except:other_title = ''actor = li.find('div', class_='bd').find('p').text.split('\n')[1].strip() # 导演和演员strInfo = re.search("(?<=<br/>).*?(?=<)", str(li.select_one(".bd p")), re.S | re.M).group().strip() # 年份、国家、类型infos = strInfo.split('/')year = infos[0].strip() # 年份area = infos[1].strip() # 国家,地区m_type = infos[2].strip() # 类型rating = li.find('span', class_='rating_num').text # 评分remark_num=li.find('div',class_='star').find_all('span')[3].text[:-3]#评分人数try:quote = li.find('span', class_='inq').text # 名言except: # 名言可能不存在quote = ''# print(actor)print(index, the_title, sub_title, other_title, actor, year, area, m_type, rating,remark_num, quote)if __name__ == '__main__':for page in range(10):print('第{}页'.format(page + 1))print('正标题', '副标题', '其他标题', '导演和主演', '年份', '地区', '类型', '评分', '评分人数','名言')url = 'https://movie.douban.com/top250?start={}&filter='.format(page * 25) # 电影的url,有多页的时候需要观察url的规律text = get_html(url) # 获取网页内容ana_by_bs4(text) # bs4方式解析
python采用requests+bs4爬取豆瓣top250电影信息相关推荐
- [python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息
这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对 ...
- Python爬虫入门 | 4 爬取豆瓣TOP250图书信息
先来看看页面长啥样的:https://book.douban.com/top250 我们将要爬取哪些信息:书名.链接.评分.一句话评价-- 1. 爬取单个信息 我们先来尝试爬取书名,利用之 ...
- Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除)
Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除) import requests from bs4 import BeautifulSoup import ti ...
- Python爬取豆瓣Top250电影中2000年后上映的影片信息
Python爬取豆瓣Top250电影中2000年后上映的影片信息 前言 双十一前加在京东购物车的一个东西,价格330,Plus会员用券后差不多310.双十一当天打开看了下399,还得去抢满300减10 ...
- Python爬取豆瓣Top250电影可见资料并保存为excel形式
Python爬取豆瓣Top250电影可见资料并保存为excel形式 利用requests第三方库实现网页的元素爬取,再使用openpyxl库进行信息的录入. 具体思路 1.分析网页的headers. ...
- python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程
python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程 前言 一丶整体思路 二丶遇到的问题 三丶分析URL 四丶解析页面 五丶写入文件 六丶完整代码 七丶最后 前言 大家好我是墨绿 头顶总 ...
- 爬取豆瓣top250电影并分析
爬取豆瓣top250电影,提取评论关键词,然后将同一国家的关键词做成一个词云,轮廓是每个国家的地图轮廓 爬取数据 需要爬取电影名称.导演.年份.地区和前10个评论除了地区,其他的都没什么问题,我们来研 ...
- scrapy爬取豆瓣top250电影数据
scrapy爬取豆瓣top250电影数据 scrapy框架 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. sc ...
- 【实战1】用BeatuifulSoup解析器爬取豆瓣Top250电影的名称
[实战1]用BeatuifulSoup解析器爬取豆瓣Top250电影的名称 一. 爬虫的普遍步骤 二. 项目目标分析 三.完整爬取代码 参考链接: https://www.bilibili.com/v ...
最新文章
- 【React Native】iOS原生导航跳转RN页面
- sklearn 笔记:数据归一化(StandardScaler)
- 项目:部署LNMP动态网站
- 数学建模必备算法之模拟退火算法
- Linux命令(2)—— 如何切换当前目录
- 第30课 棋盘上的学问 《小学生C++趣味编程》
- 算法高级(25)-分布式TopN算法玄机
- 天池学习赛:工业蒸汽量预测5——特征优化
- Linux之diff命令
- paip.备份导出ANDROID安卓自带记事本内容
- c语言必背的100代码
- 服务器虚拟化集群部署
- 找到一个不错的学习python的网站
- 安卓手机查看连接到热点设备的ip地址
- 系动词分类【大学英语笔记】
- STM32G4系列通过SPI配置DRV8353S驱动芯片
- 解决mini_httpd_v1.30在使用http post请求出现 socket hang up的问题
- 计算机一级仿宋gb2312,仿宋gb2312字体
- Git入门到精通(大全)
- 服务程序使用OutputDebugString,DbgView接收不到调试信息问题