首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CSV中将web抓取输出格式化为表格?

如何在CSV中将web抓取输出格式化为表格?
EN

Stack Overflow用户
提问于 2021-01-19 06:03:32
回答 1查看 38关注 0票数 0

我从一个网站上提取了一些数据,理论上它是一个表格。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup

cookies = {
    'SISWEB-PUBLIC': 'ORA_WWV-RMvAbLGLSxXJOqOTipG30k1M',
    '_ga': 'GA1.3.825042167.1579292801',
    '_pk_id.11.6e3e': '31091343e8e5c6a9.1579292805.14.1605535420.1584973016.',
    '_pk_ref.11.6e3e': '%5B%22%22%2C%22%22%2C1605535420%2C%22https%3A%2F%2Fwww.google.com%2F%22%5D',
    '_gid': 'GA1.3.532866579.1610911359',
    '_gat_gtag_UA_139253076_4': '1',
}

headers = {
    'Connection': 'keep-alive',
    'Accept': 'text/html, */*; q=0.01',
    'X-Requested-With': 'XMLHttpRequest',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'Origin': 'https://sisweb.tesouro.gov.br',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://sisweb.tesouro.gov.br/apex/f?p=2691:2&minimal=full&font=opensans',
    'Accept-Language': 'en-US,en;q=0.9,pt-BR;q=0.8,pt;q=0.7',
}

data = {
  'p_json': '{"salt":"284140192213841769741724635899547408701","pageItems":{"itemsToSubmit":[{"n":"P2_TIPO_LEILAO","v":"1"},{"n":"P2_TIPO_TITULO","v":"1"},{"n":"P2_PESQUISAR","v":"S","ck":"PCb5bs5LDIDvee0z7u0Uj6YkpPyJBARj2dYQ4WkxnaxN599CNVbrf6gulSAHSU5lQmuIPDpNOaTQUQaUXgpU5Q"},{"n":"P2_DATA_INICIAL","v":"14/01/2021"},{"n":"P2_DATA_FINAL","v":"18/01/2021"}],"protected":"U3PMYyQfm1IU1I_Cn_7v3g","rowVersion":""}}',
  'p_flow_id': '2691',
  'p_flow_step_id': '2',
  'p_instance': '16388465980453',
  'p_page_submission_id': '284140192213841769741724635899547408701',
  'p_request': 'PESQUISAR',
  'p_reload_on_submit': 'A'
}

response = requests.post('https://sisweb.tesouro.gov.br/apex/wwv_flow.accept', headers=headers, cookies=cookies, data=data)

我想知道如何将csv文件中的输出(响应)格式化为表格或其他格式,以便将此输出视为表格。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-01-19 06:30:29

使用示例中所示的json格式,可以很容易地使用json包中的json.dump()方法将其转换为python字典。

代码语言:javascript
复制
with open(filename) as json_file:
       data = json.load(json_file)

然后,您可以以标准python字典的形式访问数据。

或者通过抓取将其转换为字典,您可以直接将其写入csv。

然后你可以使用csv模块将你感兴趣的数据写入csv文件。如果您的数据在字典中,建议您使用csv来扩展csv.DictWriter()表列的标题。

用法示例:

导入csv

代码语言:javascript
复制
with open('names.csv', 'w', newline='') as csvfile:
    fieldnames = ['first_name', 'last_name']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})

希望这是你想要的提示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65782659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档