学习爬虫之路,必经的一个小项目就是爬取豆瓣的TOP250了,首先我们进入TOP250的界面看看。

可以看到每部电影都有比较全面的简介。其中包括电影名、导演、评分等。

接下来,我们就爬取这些数据,并将这些数据制成EXCEL表格方便查看。

首先,我们用requests库请求一下该网页,并返回他的text格式。

请求并返回成功!

接下来,我们提取我们所需要的网页元素。

点击“肖申克救赎”的检查元素。

发现它在div class = "hd" -> span class = "title"里,所以我们import beautifulsoup,来定位该元素。

同时,用相同的方法定位电影的评价人数和评分以及短评。

代码如下:

soup = BeautifulSoup(res.text, 'html.parser')

    names = []
scores = []
comments = []
result = []
#获取电影的所有名字
res_name = soup.find_all('div',class_="hd")
for i in res_name:
a=i.a.span.text
names.append(a) #获取电影的评分
res_scores = soup.find_all('span',class_='rating_num')
for i in res_scores:
a=i.get_text()
scores.append(a) #获取电影的短评
ol = soup.find('ol', class_='grid_view')
for i in ol.find_all('li'): info = i.find('span', attrs={'class': 'inq'}) # 短评
if info:
comments.append(info.get_text())
else:
comments.append("无") return names,scores,comments

Ok,现在,我们所需要的数据都存在三个列表里面,names,scores,comments。

我们将这三个列表存入EXCEL文件里,方便查看。

调用WorkBook方法

wb = Workbook()
filename = 'top250.xlsx'
ws1 = wb.active
ws1.title = 'TOP250'
for (i, m, o) in zip(names,scores,comments):
col_A = 'A%s' % (names.index(i) + 1)
col_B = 'B%s' % (names.index(i) + 1)
col_C = 'C%s' % (names.index(i) + 1)
ws1[col_A] = i
ws1[col_B] = m
ws1[col_C] = o
wb.save(filename=filename)

运行结束后,会生成一个.xlsx的文件,我们来看看效果:

Very Beatuful! 以后想学习之余想放松一下看看好的电影,就可以在上面直接查找啦。

以下是我的源代码:

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook def open_url(url):
res = requests.get(url)
return res def get_movie(res):
soup = BeautifulSoup(res.text, 'html.parser') names = []
scores = []
comments = []
result = []
#获取电影的所有名字
res_name = soup.find_all('div',class_="hd")
for i in res_name:
a=i.a.span.text
names.append(a) #获取电影的评分
res_scores = soup.find_all('span',class_='rating_num')
for i in res_scores:
a=i.get_text()
scores.append(a) #获取电影的短评
ol = soup.find('ol', class_='grid_view')
for i in ol.find_all('li'): info = i.find('span', attrs={'class': 'inq'}) # 短评
if info:
comments.append(info.get_text())
else:
comments.append("无") return names,scores,comments def get_page(res):
soup = BeautifulSoup(res.text,'html.parser')
#获取页数
page_num = soup.find('span',class_ ='next').previous_sibling.previous_sibling.text
return int(page_num) def main():
host = 'https://movie.douban.com/top250'
res = open_url(host)
pages = get_page(res)
#print(pages)
names =[]
scores = []
comments = []
for i in range(pages):
url = host + '?start='+ str(25*i)+'&filter='
#print(url)
result = open_url(url)
#print(result)
a,b,c = get_movie(result)
#print(a,b,c)
names.extend(a)
scores.extend(b)
comments.extend(c)
# print(names)
# print(scores)
# print(comments)
wb = Workbook()
filename = 'top250.xlsx'
ws1 = wb.active
ws1.title = 'TOP250'
for (i, m, o) in zip(names,scores,comments):
col_A = 'A%s' % (names.index(i) + 1)
col_B = 'B%s' % (names.index(i) + 1)
col_C = 'C%s' % (names.index(i) + 1)
ws1[col_A] = i
ws1[col_B] = m
ws1[col_C] = o
wb.save(filename=filename) if __name__ == '__main__':
main()

生成EXCEL文件还有很多种方法,下次分享Pandas生成EXCEL文件的方法~

Python 爬取豆瓣TOP250实战的更多相关文章

  1. python爬取豆瓣top250的电影数据并存入excle

    爬取网址: https://movie.douban.com/top250 一:爬取思路(新手可以看一下) : 1:定义两个函数,一个get_page函数爬取数据,一个save函数保存数据,mian中 ...

  2. Python爬取豆瓣音乐存储MongoDB数据库(Python爬虫实战1)

    1.  爬虫设计的技术 1)数据获取,通过http获取网站的数据,如urllib,urllib2,requests等模块: 2)数据提取,将web站点所获取的数据进行处理,获取所需要的数据,常使用的技 ...

  3. 零基础爬虫----python爬取豆瓣电影top250的信息(转)

    今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

  4. python爬取豆瓣电影Top250(附完整源代码)

    初学爬虫,学习一下三方库的使用以及简单静态网页的分析.就跟着视频写了一个爬取豆瓣Top250排行榜的爬虫. 网页分析 我个人感觉写爬虫最重要的就是分析网页,找到网页的规律,找到自己需要内容所在的地方, ...

  5. Python爬取豆瓣电影top

    Python爬取豆瓣电影top250 下面以四种方法去解析数据,前面三种以插件库来解析,第四种以正则表达式去解析. xpath pyquery beaufifulsoup re 爬取信息:名称  评分 ...

  6. Python爬取豆瓣指定书籍的短评

    Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...

  7. 利用Python爬取豆瓣电影

    目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com ...

  8. 基础爬虫,谁学谁会,用requests、正则表达式爬取豆瓣Top250电影数据!

    爬取豆瓣Top250电影的评分.海报.影评等数据!   本项目是爬虫中最基础的,最简单的一例: 后面会有利用爬虫框架来完成更高级.自动化的爬虫程序.   此项目过程是运用requests请求库来获取h ...

  9. Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特

    代码地址如下:http://www.demodashi.com/demo/13257.html 1. 需求说明 本项目基于Python爬虫,爬取豆瓣电影上关于复仇者联盟3的所有影评,并保存至本地文件. ...

随机推荐

  1. Day 23 系统服务之救援模式

    1.CentOS6与Centos 7启动流程 4.运行级别C6&C7 0 关机 1 单用户模式 (超级权限 必须面对实体硬件) 2 暂未使用 3 字符界面(黑框) 4 暂未使用 5 图形界面 ...

  2. 【C/C++】qsort函数的使用方法和细节

    函数概述 qsort 为quick_sort的简写,意为快速排序,主要用于对各种数组的排序. 因为数组的元素可能是任何类型的,甚至是结构或者联合,所以必须高数函数qsort如何确定两个数组元素哪一个& ...

  3. java线上cpu、内存问题排查方法

    一.线程 查进程中占用cpu高的线程 ps -mp xxxxx -o THREAD,tid,time | sort -rn 将线程的id从10位转到16位,可以在下面jstack中找到对应线程 输出线 ...

  4. linux安装couchbase

    一.卸载 查看已安装的版本 rpm -qa|grep couchbase 卸载已安装的版本 rpm -e xxxx 二.安装 安装couchbase rpm -i xxxx.rpm 浏览器中访问809 ...

  5. 混合事务分析处理“HTAP”的技术要点分析

    HTAP是近些年来比较火的一个概念,本文将聊聊HTAP的前世今生及技术特点. 一.数据应用类别 根据数据的使用特征,可简单做如下划分.在选择技术平台之前,我们需要做好这样的定位. 1.1 OLTP 联 ...

  6. Leetcode 121.买股票的最佳时机

    题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出 ...

  7. SpringBoot起飞系列-配置文件(三)

    一.SpringBoot中的配置文件 说起到配置文件,大家并不陌生,早在springboot之前,我们用ssh,ssm框架开发的时候整天都要接触配置文件,那时候的配置文件基本上都是.propertie ...

  8. 这个注册的 IP 网络都不通了,Eureka 注册中心竟然无法踢掉它!

    本文导读: 微服务技术架构选型介绍 k8s 容器化部署架构方案 Eureka 注册中心问题场景 问题解决手段及原理剖析 阅读本文建议先了解: 注册中心基本原理 K8s(Kuberneters)基本概念 ...

  9. 基于 B/S 端构建的 3D 楼宇自控可视化监控

    前言 智慧楼宇和人们的生活息息相关,楼宇智能化程度的提高,会极大程度的改善人们的生活品质,在当前工业互联网大背景下受到很大关注.目前智慧楼宇可视化监控的主要优点包括: 智慧化 -- 智慧楼宇是一个生态 ...

  10. Spark 学习笔记之 Streaming Window

    Streaming Window: 上图意思:每隔2秒统计前3秒的数据 slideDuration: 2 windowDuration: 3 例子: import org.apache.kafka.c ...