Python爬虫获取豆瓣电影TOP250
最近在学python,研究了下,写了两个爬虫成功爬取了一些东西。有一个很黄很暴力,就不放出来了,还有一个比较绿色,简单,适合初学者学习,思路也比较清晰,也方便我以后再捡起来,注释写的很清楚,特把源码放到博客。有需要的朋友也可以学习下,探讨一下
# -*-coding:utf-8-*-
import requests
import os
from lxml import html
import xlwt
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def get_url_content():Allresponse=''#因为网页不多,所以可以考虑吧10页的数据拼成一个content#range(0,250,25)意思是从0开始,到250结束,每轮i+25for i in range(0,250,25):response =requests.get("https://movie.douban.com/top250?start="+bytes(i)+"&filter=",verify=False).contentAllresponse=Allresponse+responsedataList=[]dataList= builder_divide(Allresponse)return dataListdef builder_divide(content):dataList=[]#lxml把网页先解析到分析器中selector=html.fromstring(content)#先按li/div模块,把他截成250个divfor j in selector.xpath("//ol[@class='grid_view']/li/div[@class='item']"):count=''count =j.xpath("div[@class='pic']//em/text()")[0]title='' title=j.xpath("div[@class='info']//span[@class='title'][1]/text()")[0]kindof='' kindof=j.xpath("div[@class='info']//div[@class='bd']//p[@class][1]/text()")[0].strip()score='' score=j.xpath("div[@class='info']//div[@class='bd']//span[@class='rating_num']/text()")[0]evaluate=''evaluate=j.xpath("div[@class='info']//div[@class='star']/span[last()]/text()")[0]detail=''#其实应该对每一个j.xpath进行判断,因为有可能标签为空,[0]就报错了#但是这里我是已经发现了只有inq有一个缺的,所以其他的没有做空值判断if(len(j.xpath("div[@class='info']//span[@class='inq']/text()"))>0): detail=j.xpath("div[@class='info']//span[@class='inq']/text()")[0] #每一次循环,把需要的数据获取到以后,放到mix元组里面mix=(count,title,kindof,score,evaluate,detail)#每轮循环以后,把mix添加到数组里,后面可以用dataList[轮数][元组下标]取出对应的值dataList.append(mix) return dataList def save_core_data(dataList,filename):#xlwt是一个扩展的负责写入xls的工具book= xlwt.Workbook(encoding='utf-8',style_compression=0)sheet=book.add_sheet("豆瓣最佳评分Top250",cell_overwrite_ok=True)#可以用sheet.来空值格子的样式等,这里是想把特定几列拉大sheet.col(1).width=256*20sheet.col(2).width=800*20sheet.col(4).width=200*20col=("排名","影名","类别","评分","评论数","详情")#第一行把字段名写入for i in range(0,6):sheet.write(0,i,col[i]) #循环列表,拿出元组,循环元组拿出需要的数据,并插入到xls中for i in range(0,250):for j in range(0,6):#write(行(第一行是标题,所以+1),列,数据)sheet.write(i+1,j,dataList[i][j])j=j+1#把缓存流写入,在某些编辑器下,filename为中文会乱码,#用 ‘字符串’.decode('utf-8').encode(sys.getfilesystemencoding())解决book.save(filename.decode('utf-8').encode(sys.getfilesystemencoding()))
#有些变量可以不用先置空在赋值,但为了便于理解,
#先置空未尝不是一种好事
datalist=[]
#调用程序返回列表
datalist=get_url_content()
#把列表传递给写入方法
save_core_data(datalist,"豆瓣好电影Top250.xls")
Python爬虫获取豆瓣电影TOP250相关推荐
- python爬虫获取豆瓣图书Top250
在上一篇博客<python爬虫获取豆瓣电影TOP250>中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法.这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片 ...
- python爬虫实战—豆瓣电影TOP250
系列文章目录 python爬虫实战 前言 本文主要用python爬取豆瓣电影TOP250数据并将爬取到的数据保存到MySQL中.同时也介绍了该项目中遇到的问题. 爬取内容:电影名称,电影别名,导演,主 ...
- 第一期:【python爬虫】豆瓣电影top250
1.首先看最后的爬取结果 还有电影的信息,我保存的是csv文件.可以学到爬虫的相关知识和数据保存的信息. 删除信息,直接上代码. 红色圆点旁边的是清空.(如上图所示) 下面请求中的第一个或者前几个(如 ...
- python爬取豆瓣电影top250的代码_Python爬虫——爬取豆瓣电影Top250代码实例
利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Excel表中 ...
- python爬虫获取豆瓣TOP25电影名称和评分
import requests import lxml.html myheaders = {"User-Agent": "Mozilla/5.0 (Windows NT ...
- Python爬取豆瓣电影top250的电影信息
Python爬取豆瓣电影top250的电影信息 前言 一.简介 二.实例源码展示 小结 前言 相信很多小伙伴在学习网络爬虫时,老师们会举一些实例案例讲解爬虫知识,本文介绍的就是经典爬虫实际案例–爬取豆 ...
- python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel
douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...
- 利用python爬取豆瓣电影top250
利用python爬取豆瓣电影top250: 注:本内容只是作为个人学习记录 1.业务分析 进入网页https://movie.douban.com/top250 可以看见每部电影都呈现在眼前,点击电影 ...
- 源码大公开!Python爬取豆瓣电影Top250源代码,赶紧收藏!
哈喽~大家好,我是恰恰.不知道是不是有很多小伙伴跟我一样,很喜欢看电影,尤其是那种别人推荐的豆瓣高分电影,所以学Python就有一个好处,用Python爬取豆瓣电影那是分分钟的事,再也不用因为有些电影 ...
最新文章
- 【C 语言】数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )
- java string isempty,java – String.isEmpty()和String.equals(“”)之间的区别
- C语言中指针的使用方法
- 【C语言笔记】关于数组的一个陷阱!
- 在Win7中怎样打开摄像头?
- 解决Java当中 用point 画图时背景颜色变成黑色问题
- 【渝粤教育】 国家开放大学2020年春季 1021劳动与社会保障法 参考试题
- 为什么你设计的网页不够惊艳?
- Spine 3.8.75 导入Unity报错
- python 使用win32api截图全解释
- javaweb JAVA JSP眼镜销售系统购物系统jsp购物系统购物商城系统源码(jsp电子商务系统)网上眼镜在线销售
- 信捷PLC跟西门子700IE通信
- ubuntu 替换清华源遇到的问题-不能更新,无法拉取 https 源解决
- 新年伊始 张孝祥老师 离开了
- Elasticsearch+cerebro部署文档
- 《Unity3d实战就业路线》
- 关于daemonize()
- Adobe国际认证|面向大学生和青少年的数字安全提示
- 【快应用】account.authorize授权码模式登录报错1102
- vscode调试js
热门文章
- Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔
- JS按位非(~)运算符与~~运算符的理解
- 分数计算器java报告_20182307 2019-2020-1 《数据结构与面向对象程序设计》实验四报告...
- react结合rust编写wasm图像处理
- Windows和Xyplorer的完美结合
- Eclipse编写代码时出现The word 'localhost' is not correctly spelled.禁告
- JAVA中用POI操作word
- Elasticsearch 6.4 ingest-attachment对office文件IK分词器全文检索(1) HttpAPI使用
- 2020 数据科学平台领域最具商业合作价值企业盘点
- Java简易转码工具(一个字符串编码是GBK的文本文件,内容转成UTF-8编码)