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爬取网页数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python保存数据到文件的实现方式

    Python保存数据到文件的实现方式

    这篇文章主要介绍了Python保存数据到文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 基于wxpython开发的简单gui计算器实例

    基于wxpython开发的简单gui计算器实例

    这篇文章主要介绍了基于wxpython开发的简单gui计算器,实例分析了基于wxpython实现简单桌面应用程序的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 如何利用Python写猜数字和字母的游戏

    如何利用Python写猜数字和字母的游戏

    这篇文章主要介绍了如何利用Python写猜数字和字母的游戏,文章基于Python实现游戏小项目,感兴趣的朋友可以参考一下
    2022-07-07
  • Python ValueError: invalid literal for int() with base 10 实用解决方法

    Python ValueError: invalid literal for int() with base 10 实用

    这篇文章主要介绍了Python ValueError: invalid literal for int() with base 10 实用解决方法,本文使用了一个取巧方法解决了这个问题,需要的朋友可以参考下
    2015-06-06
  • Python数据结构与算法中的队列详解(2)

    Python数据结构与算法中的队列详解(2)

    这篇文章主要为大家详细介绍了Python中的队列,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Python去掉字符串中空格的方法

    Python去掉字符串中空格的方法

    这篇文章主要介绍了Python中去掉字符串中空格的方法,使用了strip()、lstrip()、rstrip()函数,需要的朋友可以参考下
    2014-03-03
  • Django Rest Framework框架构建复杂API技能详解

    Django Rest Framework框架构建复杂API技能详解

    这篇文章会详细介绍Django REST Framework的核心组成部分,包括Serializers、ViewSets、Routers、权限和认证系统以及测试和调试工具,文章从基础开始,逐步深入,旨在帮助读者掌握使用Django REST Framework构建复杂API的技能
    2023-09-09
  • Python Base64编码和解码操作

    Python Base64编码和解码操作

    Base64 就是一种基于64个可打印字符来表示二进制数据的方法,这篇文章主要介绍了Python Base64编码和解码,需要的朋友可以参考下
    2022-12-12
  • pandas DataFrame 赋值的注意事项说明(index)

    pandas DataFrame 赋值的注意事项说明(index)

    这篇文章主要介绍了pandas DataFrame 赋值的注意事项说明(index),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • python scrapy脚本报错问题及解决

    python scrapy脚本报错问题及解决

    这篇文章主要介绍了python scrapy脚本报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论