当前位置: 首页 > news >正文

python爬虫爬取豆瓣TOP250用csv文件

一、爬取数据并用csv文件保存

import numpy as np
import requests
from lxml import etree
from time import sleep
import xlwt
import csv
url='https://movie.douban.com/top250'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
titles_cn = []
titles_en=[]
links = []
director=[]
actors=[]
years=[]
nations=[]
types=[]
scores=[]
rating_nums=[]fp = open('./douban_top250.csv','w',encoding='utf-8')
writer = csv.writer(fp)
writer.writerow(['电影中文名','电影英文名','电影详情页链接','导演','演员','上映年份','国际','类型','评分','评分人数']
)
for i in range(0,226,25):url = f'https://movie.douban.com/top250?start={i}&filter='data={'start':i,'filter':' ',}response = requests.get(url, headers=headers, data=data)sleep(1)#print(response, status_code)#print(response, encoding)#print(response.text)html = response.textdata = etree.HTML(html)li_list=data.xpath('//*[@id="content"]/div/div[1]/ol/li')for each in li_list:title1=each.xpath('./div/div[2]/div[1]/a/span[1]/text()')[0]titles_cn.append(title1)title2=each.xpath('./div/div[2]/div[1]/a/span[2]/text()')[0].strip('\xa0/\xa0')titles_en.append(title2)link = each.xpath('./div/div[2]/div[1]/a/@href')[0]links.append(link)info1 = each.xpath('./div/div[2]/div[2]/p[1]/text()[1]')[0].strip()split_info1 = info1.split('\xa0\xa0\xa0')dirt = split_info1[0].strip('导演: ')director.append(dirt)if len(split_info1) == 2:ac = split_info1[1].strip('主演: ')actors.append(ac)else:actors.append(np.nan)info2 = each.xpath('./div/div[2]/div[2]/p[1]/text()[2]')[0].strip()split_info2 = info2.split('\xa0/\xa0')# print(split_info)year = split_info2[0]nation = split_info2[1]ftype = split_info2[2]years.append(year)nations.append(nation)types.append(ftype)score = each.xpath('./div/div[2]/div[2]/div/span[2]/text()')[0]scores.append(score)num = each.xpath('./div/div[2]/div[2]/div/span[4]/text()')[0].strip('人评价')rating_nums.append(num)writer.writerow([title1, title2, link, dirt, ac, year, nation, ftype, score, num])print(f'————————————第{int((i / 25) + 1)}页爬取完毕!——————————————')
fp.close()
print('------------------------------------------爬虫结束!---------------------------------------------')

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【MySQL】函数
  • HTML静态网页成品作业(HTML+CSS)—— 美食湘菜介绍网页(5个页面)
  • 图形和插图软件Canvas X Pro 20 Build 914
  • Android面试题之说说系统的启动流程(总结)
  • Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战
  • 常用的三种软件架构
  • 【Vue】购物车案例-构建项目
  • 15.2 测试-网格测试、基准测试与测试覆盖率
  • 基于拓扑漏洞分析的网络安全态势感知模型
  • 源码讲解kafka 如何使用零拷贝技术(zero-copy)
  • 云端之上的边缘:解读云计算与边缘计算的战略融合
  • 苹果召开WWDC:属于你的“定制”AI智能?
  • 直线度测量仪发展历程!
  • 鸿蒙原生开发——轻内核A核源码分析系列三 物理内存(2)
  • 利用 AI 深度学习,实现化合物配比最优化解决方案
  • 《深入 React 技术栈》
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Create React App 使用
  • js ES6 求数组的交集,并集,还有差集
  • mockjs让前端开发独立于后端
  • MySQL主从复制读写分离及奇怪的问题
  • Python 基础起步 (十) 什么叫函数?
  • spring cloud gateway 源码解析(4)跨域问题处理
  • TypeScript实现数据结构(一)栈,队列,链表
  • Yeoman_Bower_Grunt
  • 第十八天-企业应用架构模式-基本模式
  • 经典排序算法及其 Java 实现
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 用简单代码看卷积组块发展
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #{}和${}的区别是什么 -- java面试
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (七)c52学习之旅-中断
  • (四)Linux Shell编程——输入输出重定向
  • (四)进入MySQL 【事务】
  • (五)IO流之ByteArrayInput/OutputStream
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net CF下精确的计时器
  • .NET Core 中插件式开发实现
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net 怎么循环得到数组里的值_关于js数组
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net流程开发平台的一些难点(1)
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @SpringBootApplication 注解
  • @SuppressWarnings注解
  • [100天算法】-x 的平方根(day 61)