python爬取网页数据到保存到csv
程序员文章站
2022-06-16 23:05:17
目录任务需求:爬取网址:网址页面:代码实现结果:代码实现:完整代码:总结任务需求:爬取一个网址,将网址的数据保存到csv中。爬取网址:https://www.iqiyi.com/ranks1/1/0?...
任务需求:
爬取一个网址,将网址的数据保存到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爬虫:基于Scrapy爬取京东商品数据并保存到mysql且下载商品图片
-
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
-
python利用xpath爬取网上数据并存储到django模型中
-
Python 爬虫批量爬取网页图片保存到本地的实现代码
-
【爬虫学习三】 Python将爬取的数据存储到MongoDB中
-
【Python Scrapy 爬虫框架】 5、利用 pipelines 和 settings 将爬取数据存储到 MongoDB
-
Python3爬取网页数据存入MySQL
-
python爬虫爬取网页表格数据
-
爬取网页文本数据--Python