前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python网络爬虫中爬到的数据怎么分列分行写入csv文件中

Python网络爬虫中爬到的数据怎么分列分行写入csv文件中

作者头像
前端皮皮
发布2022-08-17 17:05:34
3.3K0
发布2022-08-17 17:05:34
举报
文章被收录于专栏:前端进阶学习交流

大家好,我是皮皮。

一、前言

前几天在Python白银交流群有个叫【꯭】的粉丝问了一个Python网络爬虫中爬到的数据怎么分列分行写入csv文件中的问题,这里拿出来给大家分享下,一起学习下。

现在的状态是下图这样的。

代码截图如下:

问题补充:

二、解决过程

这里【瑜亮老师】给出了一个代码,如下所示:

代码语言:javascript
复制
et = etree.HTML(resp)
tr_list = et.xpath('//table//tr')
for i in tr_list:
    # 获取电影信息,并去掉前面的多余的那个圆点
    data = ", ".join(i.xpath('./td//text()')[1:]) + '\n'
    # 追加写入文件
    with open('电影.csv', 'a', encoding='utf-8') as f:
        f.write(data)

这个代码亲测好使,不过还有更好的思路。

这里【月神】给出了一个代码,如下所示:

代码语言:javascript
复制
import requests
from lxml import etree


url = 'https://piaofang.maoyan.com/session'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                         'Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.36 ',
           'Referer': 'https://piaofang.maoyan.com/box-office?ver=normal'
           }
resp = requests.get(url=url, headers=headers).text

et = etree.HTML(resp)
pf_data = et.xpath('//div[@class="tiny-table tiny-table-no-border tiny-table-middle"]//td//text()')
## 保存csv文件部分
pf_string = ''.join(f'\n{i},' if i == '•' else f'{i},' for i in pf_data).strip('\n').split('\n')
with open('pf_maoyan.csv', 'w', encoding='utf-8-sig') as f:
    for i in pf_string:
        f.writelines(i.strip(',')+'\n')

你以为这就完事了?还有更好的方法在后头呢。下面的这个代码是不用xpath写的,改用pandas处理网页结构。

代码语言:javascript
复制
import requests
import pandas as pd

url = 'https://piaofang.maoyan.com/session'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                         'Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.36 ',
           'Referer': 'https://piaofang.maoyan.com/box-office?ver=normal'
           }
resp = requests.get(url=url, headers=headers).text
# 利用pandas保存csv文件
pd.read_html(resp)[0].to_csv('pf_maoyan.csv', encoding='utf-8-sig', index=False, header=None)

小伙伴们直呼好家伙。

当然了,这个网站可以抓取的方法有很多,感兴趣的小伙伴们也可以试试看,就当练习下了。

三、总结

大家好,我是皮皮。这篇文章主要分享了Python网络爬虫中爬到的数据怎么分列分行写入csv文件中的问题,文中针对该问题给出了具体的解析和代码演示,帮助粉丝顺利解决了问题。

最后感谢粉丝【꯭】提问,感谢【月神】、【瑜亮老师】给出的具体解析和代码演示,感谢粉丝【邓旺】、【千葉ほのお】、【Jason】、【月牙弯弯】等人参与学习交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、解决过程
  • 三、总结
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档