python爬取网页数据到保存到csv
更新时间:2022年01月07日 09:10:50 作者:wh来啦
大家好,本篇文章主要讲的是python爬取网页数据到保存到csv,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
任务需求:
爬取一个网址,将网址的数据保存到csv中。
爬取网址:
https://www.iqiyi.com/ranks1/1/0?vfrm=pcw_home&vfrmblk=&vfrmrst=712211_dianyingbang_rebo_title
网址页面:
代码实现结果:
代码实现:
导入包:
import requests import parsel import csv
设置csv文件格式:
设计未来数据的存储形式。
#打开文件 f = open('whxixi.csv', mode='a',encoding='utf-8',newline='') #文件列名 csv_writer= csv.DictWriter(f,fieldnames=['电影名字', '弹幕总数', '新增评论', '电影链接', '电影日期', '电影类型', '电影演员', '电影介绍']) #输入文件列名 csv_writer.writeheader()
获取数据:
获取网页的html,得到原始的数据( 得到的数据保存在response中)。
#选择爱奇艺热播榜的网址 url='https://www.iqiyi.com/ranks1/1/0?vfrm=pcw_home&vfrmblk=&vfrmrst=712211_dianyingbang_rebo_title' headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'} #获取网址内容,赋值 到response response = requests.get(url=url, headers=headers)
加工数据:
对得到的网页原始数据进行加工处理,即提取出有用的数据。备注,根据爬取的网页进行调整css()里面的内容,不同网站页面的结构不同,根据需要进行调整。(F12开发者模式)
#把response.text转换为selector对象 可以使用re, css,x-path选择器 webtext = parsel.Selector(response.text) #第一步筛选数据,形成列表,可以使下次查找形成循环 list=webtext.css('.rvi__list a') #再上一步的基础上,使用循环,进行提取数据 for li in list: title= li.css(' .rvi__con .rvi__tit1::text').get() bulletcomments =li.css('.rvi__con .rvi__tag__box span:nth-child(1)::text').get() #弹幕总数 newcomments =li.css(' .rvi__con .rvi__tag__box span:nth-child(2)::text').get() #新增评论数 href = li.css(' ::attr(href)').get().replace('//','http://') movie_info=li.css(' .rvi__con .rvi__type1 span::text').get().split('/') year = movie_info[0].strip() type = movie_info[1].strip() actor = movie_info[2].strip() filmIntroduction=li.css(' .rvi__con p::text').get().strip() dic={ '电影名字':title, '弹幕总数':bulletcomments, '新增评论':newcomments, '电影链接':href, '电影日期':year, '电影类型':type, '电影演员':actor, '电影介绍':filmIntroduction } csv_writer.writerow(dic) #将数据输入到csv文件中
完整代码:
import requests import parsel import csv f = open('whxixi.csv', mode='a',encoding='utf-8',newline='') csv_writer= csv.DictWriter(f,fieldnames=['电影名字', '弹幕总数', '新增评论', '电影链接', '电影日期', '电影类型', '电影演员', '电影介绍']) csv_writer.writeheader() #选择爱奇艺热播榜的网址 url='https://www.iqiyi.com/ranks1/1/0?vfrm=pcw_home&vfrmblk=&vfrmrst=712211_dianyingbang_rebo_title' headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'} #获取网址内容,赋值 到response response = requests.get(url=url, headers=headers) #把response.text转换为selector对象 可以使用re, css,x-path选择器 webtext = parsel.Selector(response.text) #第一步筛选数据,形成列表,可以使下次查找形成循环 list=webtext.css('.rvi__list a') #再上一步的基础上,使用循环,进行提取数据 for li in list: title= li.css(' .rvi__con .rvi__tit1::text').get() bulletcomments =li.css('.rvi__con .rvi__tag__box span:nth-child(1)::text').get() #弹幕总数 newcomments =li.css(' .rvi__con .rvi__tag__box span:nth-child(2)::text').get() #新增评论数 href = li.css(' ::attr(href)').get().replace('//','http://') movie_info=li.css(' .rvi__con .rvi__type1 span::text').get().split('/') year = movie_info[0].strip() type = movie_info[1].strip() actor = movie_info[2].strip() filmIntroduction=li.css(' .rvi__con p::text').get().strip() dic={ '电影名字':title, '弹幕总数':bulletcomments, '新增评论':newcomments, '电影链接':href, '电影日期':year, '电影类型':type, '电影演员':actor, '电影介绍':filmIntroduction } csv_writer.writerow(dic) #将数据输入到csv文件中
总结
到此这篇关于python爬取网页数据到保存到csv的文章就介绍到这了,更多相关python爬取网页数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Windows系统下Chromedriver.exe安装及配置详细教程
ChromeDriver.exe是一款实用的chrome浏览器驱动工具,能够用于自动化测试、网络爬虫和操作浏览器,其主要作用是模拟浏览器操作,下面这篇文章主要给大家介绍了关于Windows系统下Chromedriver.exe安装及配置的相关资料,需要的朋友可以参考下2023-11-11tensorflow如何将one_hot标签和数字(整数)标签进行相互转化
这篇文章主要介绍了tensorflow如何将one_hot标签和数字(整数)标签进行相互转化问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-06-06
最新评论