2016-05-24 11 views
-2

私はsec.govのウェブサイトからたくさんのファイルを掻き集めようとしています。問題は、古いファイルが.txt形式の形式であり、実際のHTML書式を一切持たないことです。 Pythonを使用してこれらのファイルから情報を取得する方法はありますか?ウェブでpythonを使って.txtファイルを傷つける

Here's a link to an example document

私は約30,000行うにはこれらの人のを持っているし、古い文書は、私の上司は本当にたいものです...私は現在、適切にフォーマットされている他の擦り傷のためBeautifulSoup4を使用しています。

ありがとうございます!

+1

どのような情報を取得しようとしていますか? –

+2

ウェブスクラップではないHTMLでない場合は、単純に解析します。 – jonrsharpe

+1

予想される出力を追加する必要があります。 –

答えて

3

テキストファイルを取得できる場合は、基本的なテキストファイルの解析が必要です。このような

何かがあなたの目的のために罰金する必要があります: http://www.pythonforbeginners.com/files/reading-and-writing-files-in-python

を具体的に、あなたはこのようなものを使用することができ、ローカルに持つファイルを開くには:

file = open("newfile.txt", "r") 

を最初の引数である場合2番目の引数はファイルを開くモードです( "r"は読み込みを意味します)。次に、file.read()、file.readline()、またはfile.readlines()などのさまざまなメソッドを使用して、テキストファイルから文字を取得できます。

テキストファイルから単語を読みたい場合は、Reading a text file and splitting it into single words in pythonもチェックしてください。その答えは、pythonスクリプトと同じディレクトリにあるテキストファイルのすべての単語を繰り返し処理する方法を示しています。

with open('words.txt','r') as f: 
    for line in f: 
     for word in line.split(): 
      print(word) 

ファイルをローカルにダウンロードしていないが、あなたはURLを持っている場合、これはまた、あなたを助ける必要があります。In Python, given a URL to a text file, what is the simplest way to read the contents of the text file?

を、あなたが探しているそのリンク内の特定の部分はこれです:

解析するファイルとlxmlのをGETするurllib.requestを使用して、この特定の例では
import urllib2 # the lib that handles the url stuff 

data = urllib2.urlopen(target_url) # it's a file like object and works just like a file 
+0

十分な情報がないという質問以外に、なぜ投票を停止するのですか?これはまさに彼がやろうとしていることです... – Kush131

+2

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 12461934) – ppperry

+0

十分に公正な! info pappryに感謝します。 – Kush131

0

import urllib.request 
broken_xml = urllib.request.urlopen('https://www.sec.gov/Archives/edgar/data/20/000089322004000596/w93059exv31w1.txt').read().decode('utf-8') 
from lxml import etree 
from io import StringIO 
tree = etree.parse(StringIO(broken_xml), parser = etree.XMLParser(encoding='utf-8', recover=True)) 
tree.xpath('//SEQUENCE/text()') 
# ['7\n'] 
tree.xpath('//FILENAME/text()') 
# ['w93059exv31w1.txt\n'] 
関連する問題