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

(0)

相关推荐

  • Python操作CSV格式文件的方法大全

    目录 (一)CSV格式文件 (二)CSV库操作csv格式文本 (三)pandas库操作CSV文件 总结 (一)CSV格式文件 1.说明 CSV是一种以逗号分隔数值的文件类型,在数据库或电子表格中,常见的导入导出文件格式就是CSV格式,CSV格式存储数据通常以纯文本的方式存数数据表. (二)CSV库操作csv格式文本 操作一下表格数据: 1.读取表头的2中方式 #方式一 import csv with open("D:\\test.csv") as f: reader = csv.rea

  • 教你用Python读取CSV文件的5种方式

    目录 第一招:简单的读取 第二招:用nametuple 第三招:用tuple类型转换 第四招:用DictReader 第五招:用字典转换 典型的数据集stocks.csv: 一个股票的数据集,其实就是常见的表格数据.有股票代码,价格,日期,时间,价格变动和成交量.这个数据集其实就是一个表格数据,有自己的头部和身体. 第一招:简单的读取 我们先来看一种简单读取方法,先用csv.reader()函数读取文件的句柄f生成一个csv的句柄,其实就是一个迭代器,我们看一下这个reader的源码: 喂给re

  • python爬取bilibili网页排名,视频,播放量,点赞量,链接等内容并存储csv文件中

    首先要了解html标签,标签有主有次,大致了解以一下,主标签是根标签,也是所有要爬取的标签的结合体 先了解一下待会要使用代码属性: #获取属性 a.attrs  获取a所有的属性和属性值,返回一个字典 a.attrs['href']   获取href属性 a['href']   也可简写为这种形式   #获取内容 a.string      获取a标签的直系文本 注意:如果标签还有标签,那么string获取到的结果为None,而其它两个,可以获取文本内容 a.text  这是属性,获取a子类的所

  • 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文件格

  • 实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.firefoxchina.cn/?from=worldindex') True 实例:使用脚本打开一个网页. 所有Python程序的第一行都应以#!python开头,它告诉计算机想让Python来执行这个程序.(我没带这行试了试,也可以,可能这是一种规范吧) 1.从sys.argv读取命令行参数:打开一个新的文

  • python爬虫爬取网页数据并解析数据

    1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 只要浏览器能够做的事情,原则上,爬虫都能够做到. 2.网络爬虫的功能 网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比如可以自动爬取一些金融信息,并进行投资分析等. 有时,我们比较喜欢的新闻网站可能有几个,每次都要分别

  • python爬取网站数据保存使用的方法

    编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了.问题要从文字的编码讲起.原本的英文编码只有0~255,刚好是8位1个字节.为了表示各种不同的语言,自然要进行扩充.中文的话有GB系列.可能还听说过Unicode和UTF-8,那么,它们之间是什么关系呢?Unicode是一种编码方案,又称万国码,可见其包含之广.但是具体存储到计算机上,并不用这种编码,可以说它起着一个中间人的作用.你可以再把Unicode编码(encode)为UTF-8,或者GB,再存储到计算机

  • 浅谈Python爬取网页的编码处理

    背景 中秋的时候,一个朋友给我发了一封邮件,说他在爬链家的时候,发现网页返回的代码都是乱码,让我帮他参谋参谋(中秋加班,真是敬业= =!),其实这个问题我很早就遇到过,之前在爬小说的时候稍微看了一下,不过没当回事,其实这个问题就是对编码的理解不到位导致的. 问题 很普通的一个爬虫代码,代码是这样的: # ecoding=utf-8 import re import requests import sys reload(sys) sys.setdefaultencoding('utf8') url

  • Python爬取网页信息的示例

    Python爬取网页信息的步骤 以爬取英文名字网站(https://nameberry.com/)中每个名字的评论内容,包括英文名,用户名,评论的时间和评论的内容为例. 1.确认网址 在浏览器中输入初始网址,逐层查找链接,直到找到需要获取的内容. 在打开的界面中,点击鼠标右键,在弹出的对话框中,选择"检查",则在界面会显示该网页的源代码,在具体内容处点击查找,可以定位到需要查找的内容的源码. 注意:代码显示的方式与浏览器有关,有些浏览器不支持显示源代码功能(360浏览器,谷歌浏览器,火

  • python爬取天气数据的实例详解

    就在前几天还是二十多度的舒适温度,今天一下子就变成了个位数,小编已经感受到冬天寒风的无情了.之前对获取天气都是数据上的搜集,做成了一个数据表后,对温度变化的感知并不直观.那么,我们能不能用python中的方法做一个天气数据分析的图形,帮助我们更直接的看出天气变化呢? 使用pygal绘图,使用该模块前需先安装pip install pygal,然后导入import pygal bar = pygal.Line() # 创建折线图 bar.add('最低气温', lows) #添加两线的数据序列 b

  • Python爬取网页的所有内外链的代码

    项目介绍 采用广度优先搜索方法获取一个网站上的所有外链. 首先,我们进入一个网页,获取网页的所有内链和外链,再分别进入内链中,获取该内链的所有内链和外链,直到访问完所有内链未知. 代码大纲 1.用class类定义一个队列,先进先出,队尾入队,队头出队: 2.定义四个函数,分别是爬取网页外链,爬取网页内链,进入内链的函数,以及调函数: 3.爬取百度图片(https://image.baidu.com/),先定义两个队列和两个数组,分别来存储内链和外链:程序开始时,先分别爬取当前网页的内链和外链,再

  • python爬取网页版QQ空间,生成各类图表

    github源码地址: https://github.com/kuishou68/python 各类图表的实现效果 爬取的说说内容 个性化说说内容词云图 每年发表说说总数柱状图.每年点赞和评论折线图 7天好友动态柱状图.饼图 使用方法 按照你的谷歌浏览器下载指定版本的驱动 http://chromedriver.storage.googleapis.com/index.html 驱动跟两个python脚本放入同目录,我的版本是90.0.4430的,查看你自己的版本,下载后把我的chromedri

  • Selenium+Tesseract-OCR智能识别验证码爬取网页数据的实例

    目录 1.项目需求描述 2.整体思路 3.功能实现 1.项目需求描述 通过订单号获取某系统内订单的详细数据,不需要账号密码的登录验证,但有图片验证码的动态识别,将获取到的数据存到数据库. 2.整体思路 1.通过Selenium技术,无窗口模式打开浏览器 2.在输入框中动态输入订单号 3.将图片验证码截图保存到本地 4.通过Tesseract-OCR技术去本地识别验证码转化为文字 5.将获取的验证码输入输入框 6.点击查询获取列表数据 3.功能实现 1.下载并安装Google浏览器,安装Googl

随机推荐