如何在Python中刮削固定宽度的文件?
在Python3中,我有一系列带有“固定宽度文件”的链接。它们是提供公司公共信息的网站。每行都有关于公司的信息 示例链接: 及 我在字典里有这些链接。关键是公司所在国家的地区名称,价值是链接如何在Python中刮削固定宽度的文件?,python,web-scraping,fixed-width,Python,Web Scraping,Fixed Width,在Python3中,我有一系列带有“固定宽度文件”的链接。它们是提供公司公共信息的网站。每行都有关于公司的信息 示例链接: 及 我在字典里有这些链接。关键是公司所在国家的地区名称,价值是链接 for chave, valor in dict_val.items(): print (f'Region of country: {chave} - and link with information: {valor}') Region of country: Acre - and link
for chave, valor in dict_val.items():
print (f'Region of country: {chave} - and link with information: {valor}')
Region of country: Acre - and link with information: http://idg.receita.fazenda.gov.br/orientacao/tributaria/cadastros/cadastro-nacional-de-pessoas-juridicas-cnpj/consultas/download/F.K03200UF.D71214AC
Region of country: Espírito Santo - and link with information: http://idg.receita.fazenda.gov.br/orientacao/tributaria/cadastros/cadastro-nacional-de-pessoas-juridicas-cnpj/consultas/download/F.K03200UF.D71214ES
...
我想读取这些链接(固定宽度文件)并将内容保存到CSV文件中。示例内容:
0107397388000155ASSOCIACAO CULTURAL
02073973880001552 16MARIA DO SOCORRO RODRIGUES ALVES BRAGA
0101904573000102ABREU E SILVA COMERCIO DE MEDICAMENTOS LTDA-ME - ME
02019045730001022 49JETEBERSON OLIVEIRA DE ABREU
02019045730001022 49LUZINETE SANTOS DA SILVA ABREU
0101668652000161CONSELHO ESCOLAR DA ESCOLA ULISSES GUIMARAES
02016686520001612 10REGINA CLAUDIA RAMOS DA SILVA PESSOA
0101631137000107FORTERM * REPRESENTACOES E COMERCIO LTDA
02016311370001072 49ANTONIO MARCOS GONCALVES
02016311370001072 22IVANEIDE BERNARDO DE MENEZES
但要填充CSV列的行,我需要用“固定宽度文件”在每一行链接上进行分离和测试
我必须遵守如下规则:
1.如果行以“01”开头,则该行包含公司注册号及其名称。示例:“010739738800015协会文化”
1.1“01”表示这一点/
1.2-行中接下来的14个位置是公司代码-从位置3开始,到16结束-(07397388000155)/
1.3-以下150个职位是公司名称-从第17位开始,到第166位结束-(协会文化)
及
2.如果行以“02”开头,它将包含有关公司合作伙伴的信息。示例:“0207373880001552 16MARIA DO SOCORRO RODRIGUES ALVES BRAGA”
/
2.1“02”表示这一点/
2.2-接下来的十四个位置是公司注册码-从位置3开始到位置16结束(07397388000155)/
2.3-下一个数字是成员识别码,可以是1、2或3-从位置17-(2)开始和结束/
2.4-接下来的十四个位置是标识成员的另一个代码-从位置18开始,到31结束-(“”-在本例中为空)/
2.5-接下来的两个位置是识别成员的另一个代码-从位置32开始,到33(16)结束/
2.6——最后的150个位置是合伙人的名字——从第34位开始,到第183位结束(MARIA DO SOCORRO RODRIGUES ALVES BRAGA)
请在这种情况下,一个可能的策略是将每个链接保存为TXT?然后试着把位置分开?
还是有更好的方法来擦除固定宽度的文件?使用
scrapy
可以将链接中的内容作为流读取并处理,而无需保存到文件中。scrapy
的文档是
这里还有一个相关的问题:您可以查看任何URL解析模块。我建议,尽管您可以使用python附带的 考虑到这一点,您可以从页面中删除文本,因为它不需要任何发件人的登录,只需执行以下操作:
import requests
r = requests.get('Your link from receita.fazenda.gov.br')
page_text = r.text
请阅读请求部分的更多内容。我将把“位置分离”留给你
提示:使用正则表达式