1

機械学習中です。テキスト ファイルを開こうとしています。クリックするリンクには
テキスト (.prn) と書かれています。問題の 1 つは、このページにフォームが 1 つしかなく、ファイルがフォームにないことです。私にとってのもう 1 つの問題は、このページにいくつかのテキスト ファイルがあることですが、それらはすべて同じ名前のテキスト (.prn) を持っています。だから私は最初のものに到達してそれを開く必要があると思います。私が開こうとしているテキスト ファイルをユニークなものにしている 1 つのことは、名前が付けられているように見えることです。

  • 要約 、おそらくこれを使用してそれを開いてから br.form.find_control( または使用することができます: br.click_link 、「要約」というタイトルの最初のものを開くように機械化する方法を見つけることができれば

    私が閲覧している Web ページは次のとおりです

    これは、機械化で開​​きたいテキストファイルがあるhtmlのセクションです。

    </div>
    <!-- END LOCALNAV --> 
        <!-- BEGIN CONTENT -->
        <div id="content">
            <h1>February 2013</h1>
            <!-- InstanceBeginEditable name="content" -->
            <ul>
                <li>Summary
                    <ul>
                        <li><a      href="/govt/reports/pd/mspd/2013/opds022013.pdf">Adobe Acrobat (.pdf)</a></li>
                        <li><a href="/govt/reports/pd/mspd/2013/opds022013.prn">Text (.prn)</a></li>
                    </ul>
                </li>
                <li>STRIPS
                    <ul>
                        <li><a href="/govt/reports/pd/mspd/2013/opdr022013.pdf">Adobe Acrobat (.pdf)</a></li>
                        <li><a href="/govt/reports/pd/mspd/2013/opdr022013.xls">Excel 5.0/95 (.xls )</a></li>
                        <li><a href="/govt/reports/pd/mspd/2013/opdr022013.prn">Text (.prn)</a></li>
                    </ul>
                </li>
                <li>Entire MSPD
                    <ul>
                        <li><a href="/govt/reports/pd/mspd/2013/opdx022013.xls">Excel File for Primary Dealers</a></li>
                        <li><a href="/govt/reports/pd/mspd/2013/opdm022013.pdf">Adobe Acrobat (.pdf)</a></li>
                        <li><a href="/govt/reports/pd/mspd/2013/opdm022013.xls">Excel 5.0/95 (.xls)</a></li>
                        <li><a href="/govt/reports/pd/mspd/2013/opdm022013.prn">Text (.prn)</a></li>
                    </ul>
                </li>
            </ul>
            <p>Note: To read or print a PDF document, you need the Adobe Acrobat Reader (v5.0 or higher) software installed on your computer. You can download the Adobe Acrobat Reader from the <a href="/exit.htm?http://get.adobe.com/reader/">Adobe website</a>.</p>
            <p>Note: If you need <a href="/helpdownload.htm">help downloading...</a></p>
            <!-- InstanceEndEditable --> </div>
        <!-- END CONTENT --> 
        <!-- BEGIN SUBLOCALNAV -->
    <div id="right">
    

    テキストファイルがあるページの前のページから始まる私のコードは次のとおりです。

           br = mechanize.Browser()
    br.set_handle_equiv(False)
    br.open(site)
    print 'br.title',br.title()
    allforms = list(br.forms())
    br.form = allforms[0]
    br.follow_link(text_regex="February", nr=0)
    #br.click_link(text='February', nr=0) # this works to
    
    #next page
    print br.title()
    allforms = list(br.forms())
    print allforms
    br.form = allforms[0]
    getstuff=br.click_link(text="Text (.prn)", nr=0) # this works to
    csvData=getstuff.readlines()  # this is where is get error
    

    ここに私のトレースバックがあります:

    Traceback (most recent call last):
    File "treasury2.py", line 56, in <module>
    csvData=getstuff.readlines()
     File "C:\Python27\lib\site-packages\mechanize\_urllib2_fork.py", line 173, in __getattr__
    raise AttributeError, attr
    AttributeError: readlines
    

    mechanize 、 BeautifulSoup 、urllib 、 urllib2 、および python27 を使用しています

    私が何を使うべきだと思うかについて、助けやヒントを教えてください。

  • 4

    1 に答える 1

    1

    の直後に、 csvData=getstuff.readlines()getstuff=br.click_link(text="Text (.prn)", nr=0)の代わりに、次を呼び出す必要があります。

    br.open(getstuff)
    csvData = br.response().read()
    

    前のページ (つまり2013_feb.htm ) で何か他のことをする必要がある場合は、次のように呼び出します。

    br.back()
    

    br直前と同じ状態に戻りますbr.open

    于 2013-03-18T23:04:28.493 に答える