学习爬虫之路,必经的一个小项目就是爬取豆瓣的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 inres_name:

a=i.a.span.text

names.append(a)#获取电影的评分

res_scores = soup.find_all('span',class_='rating_num')for i inres_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'}) #短评

ifinfo:

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) inzip(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! 以后想学习之余想放松一下看看好的电影,就可以在上面直接查找啦。

以下是我的源代码:

importrequestsfrom bs4 importBeautifulSoupfrom openpyxl importWorkbookdefopen_url(url):

res=requests.get(url)returnresdefget_movie(res):

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

names=[]

scores=[]

comments=[]

result=[]#获取电影的所有名字

res_name = soup.find_all('div',class_="hd")for i inres_name:

a=i.a.span.text

names.append(a)#获取电影的评分

res_scores = soup.find_all('span',class_='rating_num')for i inres_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'}) #短评

ifinfo:

comments.append(info.get_text())else:

comments.append("无")returnnames,scores,commentsdefget_page(res):

soup= BeautifulSoup(res.text,'html.parser')#获取页数

page_num = soup.find('span',class_ ='next').previous_sibling.previous_sibling.textreturnint(page_num)defmain():

host= 'https://movie.douban.com/top250'res=open_url(host)

pages=get_page(res)#print(pages)

names =[]

scores=[]

comments=[]for i inrange(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) inzip(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文件的方法~

原文出处:https://www.cnblogs.com/lesliechan/p/11739897.html

来源:oschina

链接:https://my.oschina.net/u/4400196/blog/3249150

python爬虫豆瓣top250_Python 爬取豆瓣TOP250实战相关推荐

  1. Python爬虫入门 | 4 爬取豆瓣TOP250图书信息

      先来看看页面长啥样的:https://book.douban.com/top250   我们将要爬取哪些信息:书名.链接.评分.一句话评价--   1. 爬取单个信息 我们先来尝试爬取书名,利用之 ...

  2. Python爬虫入门(爬取豆瓣电影信息小结)

    Python爬虫入门(爬取豆瓣电影信息小结) 1.爬虫概念 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或脚本.爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据. 2.基本流程 ...

  3. python爬虫——Cookie登录爬取豆瓣短评和影评及常见问题

    python爬虫--Cookie登录爬取豆瓣短评和影评 常见问题(本文已解决) 具体步骤 一.获取网页源码 短评.影评 二.解析网页源码及爬取评论 1.短评网页解析 ①确定位置 2.短评爬取 ①名称爬 ...

  4. Python爬虫学习之爬取豆瓣音乐Top250存入Excel表格中

    前言 目标网站:https://music.douban.com/top250 任务: 爬取豆瓣音乐Top250的歌曲名 爬取豆瓣音乐Top250的歌曲对应的表演者.发行时间和音乐流派(分别对应下图斜 ...

  5. python爬虫实践之爬取豆瓣高评分电影

    目录 概述 准备 所需模块 涉及知识点 运行效果 完成爬虫 1. 分析网页 2. 爬虫代码 3. 整理总结 概述 爬取豆瓣的高评分的电影. 准备 所需模块 re模块 requests模块 涉及知识点 ...

  6. python爬虫,Scrapy爬取豆瓣电影《芳华》电影短评,分词生成词云图。

    项目github地址:https://github.com/kocor01/scrapy_cloud Python版本为3.6 自己写的简单架构<python爬虫,爬取豆瓣电影<芳华> ...

  7. python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评

    目的:爬取豆瓣[红海行动]电影的首页短评 步骤: 1.使用BeautifulSoup解析网页 soup = BeautifulSoup(r, 'lxml') // lxml 库解析速度快,也能解析复杂 ...

  8. python爬取b站搜索结果_Python爬虫实例:爬取猫眼电影——破解字体反爬,Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取,Python爬虫实例:爬取豆瓣Top250...

    字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...

  9. 基于Requests的Python爬虫入门实例------爬取豆瓣图书排行榜的前25本图书(小白福利)

    话不多说,先上代码: # -*- coding:utf-8 -*- import sys import requests import lxml from bs4 import BeautifulSo ...

最新文章

  1. 在衡量MPLS性能时需要注意什么
  2. 树莓派.系统.官方下载中NOOBS和Raspbian的区别
  3. jquery checkbox attr区别prop
  4. javascript函数调用的几种方式
  5. vue打开后端html文件,vue中怎么请求后端数据?
  6. Cookie防伪造防修改
  7. Android之用java的socket写服务器提示java.net.BindException: Address already in use
  8. [react] react的书写规范有哪些
  9. 工作总结1:代码中漫花谷出现很多NBSP
  10. C++ STL学习笔记
  11. IOS UIViewController API,生命周期详解
  12. 当程序员写不出代码了,该怎么办?
  13. MOSS中集成各个子网站的数据到一个页面,做决策支持页面的首选: Web Capture
  14. 10、Lctech Pi(F1C200S)驱动电阻屏触摸芯片ns2009(ts2007),buildroot配置tslib(CherryPi,Mangopi,F1C100S)
  15. 【单例模式、多例模式、工厂模式和枚举】
  16. Spring Boot 实现通用 Auth 认证的 4 种方式!
  17. C语言之逻辑移位与算术移位
  18. c语言口语评分系统,FCE口语评分标准:考官更喜欢这样的考生
  19. buildroot rz sz 配置
  20. 图片的高频与低频分量 初识 与 相关博客

热门文章

  1. wps怎么恢复成单页_WPS怎么调回单页显示
  2. msm8916 lcd 相关调试点指导
  3. C 喵帕斯之平地摔 SDUT
  4. 十一、非参数检验:使用python进行卡方两样本独立性检验
  5. alook浏览器_Alook浏览器app下载|Alook浏览器安卓版下载 v3.4.1 - 跑跑车安卓网
  6. Python Data mining - Enron Email Dataset
  7. 身份证复印件的正确写法
  8. 高中关于人工智能方面的课题_AI相关专业或成热门?高中生也可以入门“人工智能”...
  9. 中国开发者将迎来黄金十年
  10. 调用企查查上的接口,实现通过公司名称查询公司列表