网上爬取的数据如何制作成表

  • 一、背景
    • 二、操作办法
      • 三、总代码

一、背景

从网上搞到一份数据,如图所示:

我该怎么制作成excel表呢?最后结果为:

二、操作办法

1、由于最后要生成表格,这里使用csv模块,不知道有没有 xlxs的响应模块,我也没用过。这个csv模块是python自带的包,无需自己下载。

import csv

2、发现爬取的文件是一个字典列表,我们尝试分析里面的字段,不妨给它加上一个表头:

headers = ['positionName', 'workYear', 'education', 'jobNature', 'financeStage','city','salary','positionAdvantage','companyFullName']

3、开始操作文件:

 with open(r"toBeCSV\data1.txt","rb") as f:#rows1 = eval(f.read().decode("gbk"))  #将bytes转换为str,用decode;反之用encoderows1 = eval(f.read().decode("gbk"))  #从磁盘上读取的就是字节流,即Bytes#print(rows1)

4、关于decode和encode,实际上用的时候我还是分不太清楚,这里用decode没毛病,我试试用encode,encoding:
AttributeError: ‘bytes’ object has no attribute 'encode’
AttributeError: ‘bytes’ object has no attribute 'encoding’

  • 说是没有这个属性。其实Open里面也可以使用encoding,如: python with open(r"toBeCSV\data1.txt","r",encoding='gbk') as f:这里使用utf-8,报错:
    UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb9 in position 25: invalid start byte

查看了一下,原来是我使用了’rb’,以二进制的形式读取文件内容,所以后面要用decode解码。

然后我把’rb’改为了’r’,发现没有报错,生成的文件内容也不是乱码,看来是我多此一举了。

5、至于为什么使用with open as,请移步这篇博客(我也是刚刚百度的):

大致的意思说,由于安全性,很可能造成操作系统读取文件执行过程出现意外,使程序终止,而无法及时关闭文件,导致内存告急(os可打开的文件数量是有限的)。固然可以使用try——finally方法,但是不如with open ……as来的简洁。

https://blog.csdn.net/xrinosvip/article/details/82019844

6、关于eval() 函数,它用来执行一个字符串表达式,并返回表达式的值。
这里不用报错:AttributeError: ‘str’ object has no attribute ‘keys’
对比一下输出:(说是要序列化为可输出文件,具体不太清楚)

7、将表头写入新的文件:

#发现写入的csv文件中是写一行空一行。解决办法是,在open()参数中将newline设置为空with open(r"toBeCSV\OutData1BeCSV3.csv",'w',newline='') as f:  f_csv = csv.DictWriter(f, headers)f_csv.writeheader()  #写入表头

f_csv只是一个变量,跟那个文件操作指针f不是一个东西呀,也相关不大。

8、把剩下的内容写入文件:

f_csv.writerows(rows1)

三、总代码

我一开始依偎要用pandas,后来发现只需要导入csv模块即可,而这个模块是python自带的包,无需自己下载。

def usePandasFromTxtToBeCSV():import csvheaders = ['positionName', 'workYear', 'education', 'jobNature', 'financeStage','city','salary','positionAdvantage','companyFullName']#{"positionName": "python工程师", "workYear": "3-5年", "education": "本科", "jobNature": "全职", "financeStage": "上市公司", "city": "上海", "salary": "12k-24k", "positionAdvantage": "晋升空间大、福利好", "companyFullName": "上海拍拍贷金融信息服务有限公司"}with open(r"toBeCSV\data1.txt","rb") as f:#rows1 = eval(f.read().decode("gbk"))  #将bytes转换为str,用decode;反之用encoderows1 = eval(f.read().decode("gbk"))  #从磁盘上读取的就是字节流,即Bytes#print(rows1)# 可以将字典型列表转化为表格模式#发现写入的csv文件中是写一行空一行。解决办法是,在open()参数中将newline设置为空with open(r"toBeCSV\OutData1BeCSV3.csv",'w',newline='') as f:  f_csv = csv.DictWriter(f, headers)f_csv.writeheader()  #写入表头f_csv.writerows(rows1)
usePandasFromTxtToBeCSV()

08 网上爬取的数据如何制作成表相关推荐

  1. python beautiful soup 标签完全相同_Python爬取Python教程并制作成pdf

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 想要把教程变成PDF有三步: 1.先生成空html ...

  2. 网上爬取股票数据实例

     # -*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup import time import random im ...

  3. 网络爬虫:Python如何从网上爬取数据?

    网络爬虫,就是按照一定规则自动访问互联网上的信息并把内容下载下来的程序或脚本. 在整个的Python爬虫架构里,从基础到深入我分为了10个部分:HTTP.网页.基本原理.静态网页爬取.动态网页爬取.A ...

  4. python 网上爬取数据源码_Python爬虫经常爬不到数据,或许你可以看一下小编的这篇文章...

    1.最简单的Python爬虫 最简单的Python爬虫莫过于直接使用urllib.request.urlopen(url=某网站)或者requests.get(url=某网站)例如:爬取漫客栈里面的漫 ...

  5. tushare正确爬取 指数数据

    相信很搞金融数据分析的人,都知道Tushare,一个免费.开源的python财经数据接口包.可以非常简单爬取股票.宏观经济数据.新闻时事.银行间同业拆放利率.甚至电影票房数据都可以爬取,比起国外的雅虎 ...

  6. 用java从网上爬取大部头小说

     用java从网上爬取大部头小说 最近,我从网上看到零点看书(www.00ksw.com)网站分章连载了网络作家写的<大主宰>这部玄幻小说.截至目前,这部小说的最新章节已写到第一千三百 ...

  7. webscraper多页爬取_数据收集:web scraper 多页(无规律url)抓取

    前言 web scraper是一个很好用的Chrome爬虫插件,它易学易用,能够满足大部分需求,而且因为是基于浏览器渲染的,所以能回避很多反爬虫问题.另外,web scraper可以多开进程,对于一些 ...

  8. 《数据科学:R语言实现》——2.7 爬取网络数据

    本节书摘来自华章计算机<数据科学:R语言实现>一书中的第2章,第2.7节,作者 丘祐玮(David Chiu),更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  9. python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么

    在Python中连接到多播服务器问题,怎么解决你把redirect关闭就可以了.在send时,加上参数allow_redirects=False 通常每个浏览器都会设置redirect的次数.如果re ...

最新文章

  1. 重改mysql名字_如何快速重命名MySQL数据库(更改模式名称)...
  2. Spring单例的线程安全性
  3. Combo box的使用
  4. Linux文件目录及其作用
  5. WSPBuilder 生成Webpart 部署包
  6. keras卷积处理rgb输入_CNN卷积神经网络模型搭建
  7. Python中os模块使用方法
  8. 求解数独难题, Sudoku问题(回溯)
  9. linux软件包管理系统的意义,Linux系统的软件包管理——RPM
  10. 2字段添加注释_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  11. aws s3 上传文件 html,javascript 上传文件到 aws s3存储桶
  12. 五邑大学计算机学院奖学金,关于开展2019-2020学年度学生综合测评和奖学金评定工作的通知...
  13. 基于图神经网络的图像分类,遥感图像分析
  14. WPF无边框窗体拖动
  15. 微博自动同步发表到微头条工具使用说明
  16. Linux——超超讲解SSH的原理与SSH的实现!建议收藏❤
  17. 8/14 二维高斯函数
  18. React + Ts项目搭建
  19. FPGA零基础学习:基于FPGA的音乐蜂鸣器设计(附代码)
  20. 记录jsp页面获取table中c:forEach循环下的td里的值

热门文章

  1. JS实现统一社会信用代码的效验(组织机构代码效验)
  2. Zalando Postgres Operator 快速上手
  3. scrapy mysql 豆瓣_Python爬虫之Scrapy+Mysql+Mongodb爬豆瓣top250电影
  4. 不可不知的潮流文化、新词汇, 00后聊天词汇
  5. ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cannot be translated
  6. ctfshow web入门-sql注入
  7. 解密:腾讯如何打造一款实时对战手游
  8. Windows让Tomcat以Apr的方式运行
  9. DDIM原理及代码(Denoising diffusion implicit models)
  10. Mybatis源码学习-MapperMethod