Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中刮削固定宽度的文件?_Python_Web Scraping_Fixed Width - Fatal编程技术网

如何在Python中刮削固定宽度的文件?

如何在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

在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 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
请阅读请求部分的更多内容。我将把“位置分离”留给你

提示:使用正则表达式