用BeautifulSoup爬取豆瓣的电影排行榜,并用xlwt把数据保存成excel
来源:互联网 发布:神华低碳研究所 知乎 编辑:程序博客网 时间:2024/06/05 18:19
用BeautifulSoup爬取豆瓣的电影排行榜,并用xlwt把数据保存成excel
大家好,这是我的第一篇博文,如有不当之处请各位谅解并及时指出!
python强大的第三方module,使他成为网络爬虫和各种数据分析的首选工具.
工具
安装了pydev的eclipse(具体的安装pydev和使用方式请百度或者Google),如果你习惯用sublime text,可以使用sublime编辑,然后在eclipse上编译运行
步骤
1.爬取网页豆瓣高分电影榜的内容
根据网页上的信息
我们建立一个DouBanItem的类,把要爬取的项目列出来,这里我是这样设置的
class DouBanItem(object):"""docstring for DouBanItem""" name = None point = None director = None staring = None type = None country = None year = None
相信用过scrapy框架的应该有点熟悉这种方式。
2.然后再建立一个GetDouBanMovie类,这里面是整个project的核心,包括url的构造,response的获取,以及内容的抓取,这里我还设置了一个下载函数,用于生成.txt文件。
所以我设置的函数有以下几个
def __init__(self)def getUrls(self)def getResponseContent(self,url)def spider(self,urls)def piplines(self,items)
def getUrls(self)函数里面
我截取前两页的url,可以看出第一张和第二张的区别在于’start=’后面的数字,说明每个url的间隔是一个step = 25
而这里总共有12页,所以问题就很简单了,构造一个urls = [],里面有12个url。
具体的源码我会上传到github,大家可以自行下载参考。
不过在spider函数里我遇到一个问题,想在这里和大家分享一下:
在https://www.douban.com/doulist/240962/?start=0&sort=seq&sub_type=“>(其中一个url的源代码)中,我要获取的item中包括这几个
导演: 弗兰克·德拉邦特主演: 蒂姆·罗宾斯 / 摩根·弗里曼 / 鲍勃·冈顿类型: 犯罪 / 剧情制片国家/地区: 美国年份: 1994
但是用以下代码
content = tag.find('div',attrs={'class':"abstract"})details = content.get_text()
执行后的details结果为
'导演: 弗兰克·德拉邦特 主演: 让·雷诺/娜塔莉·波特曼/加里·奥德曼 类型: 剧情/动作/犯罪 制片国家/地区: 法国 年份: 1994'
它是一个字符串。(注意这里每个冒号后面都有一个空格,这让我很头疼)
而我需要获取的只是每个冒号后面的内容。
所以我加了以下的代码
details = details.replace(' ','').split()
第一次replace后details还是一个字符串,只不过冒号后面的空格不见了
结果如下:
'导演:弗兰克·德拉邦特 主演:让·雷诺/娜塔莉·波特曼/加里·奥德曼 类型:剧情/动作/犯罪 制片国家/地区:法国 年份:1994'
第二次使用split()后,details就变成了一个list,即
['导演:弗兰克·德拉邦特','主演:让·雷诺/娜塔莉·波特曼/加里·奥德曼','类型:剧情/动作/犯罪','制片国家/地区:法国','年份:1994']
接下来就好办了,分别使用五个split(‘:’)[1],把冒号后面的内容提取到相应的item上
item.director = details[0].split(':')[1]item.staring = details[1].split(':')[1]item.type = details[2].split(':')[1]item.country = details[3].split(':')[1]item.year = details[4].split(':')[1]
3.使用xlwt把数据保存成一个excel文件所以我又建立了一个saveExcel3.py文件,里面是xlwt的一些基本用法,语法不是很难,只要大家不要把坐标和相应的内容填错就没什么问题。具体的我就不再赘述,大家可以参考我的源码。
4.同时里面有一个log.py文件,他是用于记录运行过程中的各种信息,以便我们知道爬取数据和保存数据成功或者失败的信息,它适用于其他project,大家可以灵活使用。
5.最后整个project的整体框架和运行结果如下如下:
这是eclipse的框架图,没有把excel文件显示出来,我也不知道为什么…
这是在sublime text3上的框架图,(sublime 是我最喜欢的编辑器,没有之一)
这是在文件里面的框架,这里显示的比较全面
这是在sublime显示的txt文件部分数据,贴出来只是因为它比较好看
这是部分表格的数据
具体的大家可以在我的GitHub上查看源代码
最后这是我的第一篇博文,如有缺漏或者错误之处,还请各位海涵,并帮我指出错误。谢谢!!!
- 用BeautifulSoup爬取豆瓣的电影排行榜,并用xlwt把数据保存成excel
- 利用 Python 爬取豆瓣电影排行榜 Top250 的数据
- Python+Scrapy 爬取豆瓣电影排行榜Top250
- 用BeautifulSoup爬取豆瓣妹子的图片
- 爬虫之获取豆瓣电影排行榜(BeautifulSoup)
- [python爬虫入门]爬取豆瓣电影排行榜top250
- 基于BeautifulSoup爬取豆瓣网上的电影信息
- 用requests和beautifulsoup爬取豆瓣电影top250,代码及遇到的问题
- python+beautifulsoup爬取豆瓣电影TOP250
- 豆瓣电影信息爬取并保存到excel
- python爬虫-豆瓣爬取数据保存为html文件
- python+beautifulsoup/xpath爬取新浪微博某用户的三层关注网络并用gephi可视化
- BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息
- Python通过BeautifulSoup爬取豆瓣读书网页内容
- htmlunit使用教程爬取网站的数据并保存成Excel表格
- 爬取豆瓣电影数据
- 爬取豆瓣影评数据
- 豆瓣电影排行榜爬虫
- hadoop之旅(一)环境搭建
- 关于a链接
- 面试题总结之TCP报头
- 顺序表(A = A U B)
- 顺序表(B = A U B)
- 用BeautifulSoup爬取豆瓣的电影排行榜,并用xlwt把数据保存成excel
- 矩阵求导公式,及MathJax公式编辑
- 顺序表(A = A n B)
- Swift 之 Alamofire 网络请求、取消请求
- Mac编译ffmpeg
- 算法:记一次快速排序
- JarvisOJ-You-Need-Python-wp
- SSH框架搭建和整合(struts2、spring4、hibernate5)
- Mybatis快速入门——Mybatis学习总结(一)