python爬取豆瓣top250的电影数据并存入excle
爬取网址: https://movie.douban.com/top250
- 一:爬取思路(新手可以看一下) :
1:定义两个函数,一个get_page函数爬取数据,一个save函数保存数据,mian中向get_page函数传递url和运save函数接受get_page函数传递过来的值
2:准备动手
二:爬取前的准备
我是pyhton3 pycharm
需要准备的库 requests,lxml,xlwt
requests解析url
lxml解析网页,获取数据
xlwt 向excle写入数据
三:代码实现(这里只是为了保存数据做演示,没有对数据做处理)
- import requests
- from lxml import etree
- import xlwt
- all_list=[]#传入save函数的结果集
- def get_page(url):
- res=requests.get(url)
- if res.status_code==200:
- html=etree.HTML(res.content)
- all=html.xpath('//div[@class="article"]/ol/li')#所有的数据都在li标签下,我们一这个为总节点
- for detail in all:
- title=detail.xpath('.//div[@class="hd"]/a/span[1]/text()')[0]#电影名字
- score=detail.xpath('.//span[@class="rating_num"]/text()')[0]#评分
- comment_sum=detail.xpath('.//div[@class="star"]/span[4]/text()')[0]#评论人数
- quote=detail.xpath('.//p[@class="quote"]/span/text()')#引言 由于有的电影没有引言,不判断会报错
- if len(quote)==0:
- quote='暂无引言'
- else:
- quote=quote[0]
- list=[]
- list.append(title)
- list.append(score)
- list.append(comment_sum)
- list.append(quote)
print(list) #输出结果在下面- all_list.append(list)#将所有的list都添加进一个list
- else:
- print(res.status_code1)
- def save(lists):
- book=xlwt.Workbook()
- sheet=book.add_sheet('douban')
- head = ['名字', '评分', '评价人数', '引言']
- for h in range(len(head)):
- sheet.write(0, h, head[h])#写一个表头
- row=1#控制行
- for list in lists:
- print(list)
- col=0#控制列
- for s in list:#循环我们的list的值
- sheet.write(row,col,s)
- col+=1
- row+=1
- book.save("doubantop250.xls")
- if __name__ == '__main__':
- #0 25 50 75
- for x in range(0,11):
- if x==0:
- url='https://movie.douban.com/top250?start=0'
- get_page(url)
- else:
- x=x*25
- url='https://movie.douban.com/top250?start='+str(x)
- get_page(url)
- save(all_list)#讲结果集传入save函数
输出的list截图:
如果有小伙伴不知道为什么要这样存放数据的话可以看下这个网址:https://www.cnblogs.com/nancyzhu/p/8401552.html,我存入excle的思路就是来源于这个网址,写的真的很容易理解 我喜欢.所以本文就不在做过多赘述,有问题的或者觉得有更好的方法的可以一起交流一下 欢迎加入我的群一起交流: 644080474 嘿嘿
python爬取豆瓣top250的电影数据并存入excle的更多相关文章
- Python 爬取豆瓣TOP250实战
学习爬虫之路,必经的一个小项目就是爬取豆瓣的TOP250了,首先我们进入TOP250的界面看看. 可以看到每部电影都有比较全面的简介.其中包括电影名.导演.评分等. 接下来,我们就爬取这些数据,并将这 ...
- 简单的爬虫例子——爬取豆瓣Top250的电影的排名、名字、评分、评论数
爬取思路: url从网页上把代码搞下来bytes decode ---> utf-8 网页内容就是我的待匹配的字符串ret = re.findall(正则,待匹配的字符串), ret 是所有匹配 ...
- 爬取豆瓣top250音乐 时长 出版商 存入Mongo数据库
import requestsfrom lxml import etreeimport reimport pymongoimport time client = pymongo.MongoClient ...
- 零基础爬虫----python爬取豆瓣电影top250的信息(转)
今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...
- 基础爬虫,谁学谁会,用requests、正则表达式爬取豆瓣Top250电影数据!
爬取豆瓣Top250电影的评分.海报.影评等数据! 本项目是爬虫中最基础的,最简单的一例: 后面会有利用爬虫框架来完成更高级.自动化的爬虫程序. 此项目过程是运用requests请求库来获取h ...
- python爬取豆瓣电影Top250(附完整源代码)
初学爬虫,学习一下三方库的使用以及简单静态网页的分析.就跟着视频写了一个爬取豆瓣Top250排行榜的爬虫. 网页分析 我个人感觉写爬虫最重要的就是分析网页,找到网页的规律,找到自己需要内容所在的地方, ...
- Python爬取豆瓣电影top
Python爬取豆瓣电影top250 下面以四种方法去解析数据,前面三种以插件库来解析,第四种以正则表达式去解析. xpath pyquery beaufifulsoup re 爬取信息:名称 评分 ...
- 利用Python爬取豆瓣电影
目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com ...
- requests爬取豆瓣top250电影信息
''' 1.爬取豆瓣top250电影信息 - 第一页: https://movie.douban.com/top250?start=0&filter= - 第二页: https://movie ...
随机推荐
- mysql 位操作支持
mysql 支持位操作. & 位与 | 位或 例如:update car_ins_fee_entity set change_status=(change_status | 1) where ...
- RN 从上手到“放弃”
RN 从上手到"放弃" 前言: react-native,相对于最近
- pat1097. Deduplication on a Linked List (25)
1097. Deduplication on a Linked List (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 ...
- Centos7搭建redis,同一服务器启动两个端口的redis
1.安装redis [1]下载安装包 #准备安装文件夹 mkdir /usr/local/soft/redis #进入文件夹 cd /usr/local/soft/redis #下载安装包 wget ...
- Java Web项目在Mac系统上启动时提示nodename nor servname provided的解决办法
今天在Mac系统上启动Java Web项目的时候,提示了Java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local nodename n ...
- kotlin查看编译后的Java代码
java学一下kotlin,由于用的是同样的jvm,那就说明他们的字节码文件应该是一样的,那么,如果我们能看到编译后的文件,那么学的更快了. 操作 1.打开一个.kt文件 2.在Android Stu ...
- js和JQuery中offset等属性对比
HTML: 内容在滚动条下面 <div id="outerDiv"> <div id="myDiv" class="myDiv&qu ...
- Linux Mint下的conky配置
最近闲来无事,想把自己的Linux Mint弄的再炫酷点,在桌面上显示一些信息,因为我已经装了Cairo-dock,现在就差这个了,下面简单说下整个流程,首先你得安装conky, sudo apt-g ...
- JVM虚拟机 - Class类文件结构
概述 Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎都是程序运行的必要数据 ...
- js 数组操作常用方法
push():在数组后面加入元素,并返回数组的长度: unshift():在数组前面就如元素,并返回数组的长度: pop():删除最后一个元素: var arr =[1,2,3,4,5] ; arr. ...