最近在学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相关推荐

  1. python爬虫获取豆瓣图书Top250

    在上一篇博客<python爬虫获取豆瓣电影TOP250>中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法.这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片 ...

  2. python爬虫实战—豆瓣电影TOP250

    系列文章目录 python爬虫实战 前言 本文主要用python爬取豆瓣电影TOP250数据并将爬取到的数据保存到MySQL中.同时也介绍了该项目中遇到的问题. 爬取内容:电影名称,电影别名,导演,主 ...

  3. 第一期:【python爬虫】豆瓣电影top250

    1.首先看最后的爬取结果 还有电影的信息,我保存的是csv文件.可以学到爬虫的相关知识和数据保存的信息. 删除信息,直接上代码. 红色圆点旁边的是清空.(如上图所示) 下面请求中的第一个或者前几个(如 ...

  4. python爬取豆瓣电影top250的代码_Python爬虫——爬取豆瓣电影Top250代码实例

    利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Excel表中 ...

  5. python爬虫获取豆瓣TOP25电影名称和评分

    import requests import lxml.html myheaders = {"User-Agent": "Mozilla/5.0 (Windows NT ...

  6. Python爬取豆瓣电影top250的电影信息

    Python爬取豆瓣电影top250的电影信息 前言 一.简介 二.实例源码展示 小结 前言 相信很多小伙伴在学习网络爬虫时,老师们会举一些实例案例讲解爬虫知识,本文介绍的就是经典爬虫实际案例–爬取豆 ...

  7. python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel

    douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...

  8. 利用python爬取豆瓣电影top250

    利用python爬取豆瓣电影top250: 注:本内容只是作为个人学习记录 1.业务分析 进入网页https://movie.douban.com/top250 可以看见每部电影都呈现在眼前,点击电影 ...

  9. 源码大公开!Python爬取豆瓣电影Top250源代码,赶紧收藏!

    哈喽~大家好,我是恰恰.不知道是不是有很多小伙伴跟我一样,很喜欢看电影,尤其是那种别人推荐的豆瓣高分电影,所以学Python就有一个好处,用Python爬取豆瓣电影那是分分钟的事,再也不用因为有些电影 ...

最新文章

  1. 【C 语言】数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )
  2. java string isempty,java – String.isEmpty()和String.equals(“”)之间的区别
  3. C语言中指针的使用方法
  4. 【C语言笔记】关于数组的一个陷阱!
  5. 在Win7中怎样打开摄像头?
  6. 解决Java当中 用point 画图时背景颜色变成黑色问题
  7. 【渝粤教育】 国家开放大学2020年春季 1021劳动与社会保障法 参考试题
  8. 为什么你设计的网页不够惊艳?
  9. Spine 3.8.75 导入Unity报错
  10. python 使用win32api截图全解释
  11. javaweb JAVA JSP眼镜销售系统购物系统jsp购物系统购物商城系统源码(jsp电子商务系统)网上眼镜在线销售
  12. 信捷PLC跟西门子700IE通信
  13. ubuntu 替换清华源遇到的问题-不能更新,无法拉取 https 源解决
  14. 新年伊始 张孝祥老师 离开了
  15. Elasticsearch+cerebro部署文档
  16. 《Unity3d实战就业路线》
  17. 关于daemonize()
  18. Adobe国际认证|面向大学生和青少年的数字安全提示
  19. 【快应用】account.authorize授权码模式登录报错1102
  20. vscode调试js

热门文章

  1. Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔
  2. JS按位非(~)运算符与~~运算符的理解
  3. 分数计算器java报告_20182307 2019-2020-1 《数据结构与面向对象程序设计》实验四报告...
  4. react结合rust编写wasm图像处理
  5. Windows和Xyplorer的完美结合
  6. Eclipse编写代码时出现The word 'localhost' is not correctly spelled.禁告
  7. JAVA中用POI操作word
  8. Elasticsearch 6.4 ingest-attachment对office文件IK分词器全文检索(1) HttpAPI使用
  9. 2020 数据科学平台领域最具商业合作价值企业盘点
  10. Java简易转码工具(一个字符串编码是GBK的文本文件,内容转成UTF-8编码)