0

KrugleやOpenHubなどのコード検索エンジンの結果を分析するツールを作りたいです。検索結果のHTMLページを取得するためにJavaとPythonを試しました:

import urllib2
def write_url(url, file_name, if_show):    
    if (url is None) or (file_name is None):
        return

    req = urllib2.Request(url)
    resp = urllib2.urlopen(req)

    ret = resp.read()

    fp = open(file_name, "w")
    fp.write(ret)
    fp.close()
    if if_show:
        print ret


if __name__ == "__main__":
    url_ = "http://www.krugle.org/document/search/#query=socket"
    file_n = "D:/tmp/test.txt"
    write_url(url_, file_n, True)
    print "Done"

しかし、結果の内容はわかりませんでした。私が得たページの一部は次のようなものです:

            <div class="content_result_body">
                <div id="hit_list"></div>
                <div class="paging" style="display: none;"></div>
            </div>

クロムを使用して検索結果ページを確認しました。それは次のようなものです:

            <div class="content_result_body">
                <div id="hit_list">
                    <div class="hit">...</div>
                    <div class="hit">...</div>
                    <div class="hit">...</div>
                </div>
                <div class="paging">...</div>
            </div>

そして、div.hit の "..." は、Krugle が検索した結果の内容を表します。Python コードで取得した返されたページの div.hit_list に何もなかった理由がわかりません。おそらく、結果の内容は js によって生成されたものです。しかし、コードで取得する方法がわかりません。

4

1 に答える 1

0

コンテンツを動的にロードするページを処理するには、Selenium で試すことができます。

from selenium import webdriver

url = "your-url.com"
br = webdriver.Firefox()
br.get(url)

html = br.page_source

もちろん、これにより Web ブラウザも開きます。それが不便であれば、xvfb や phantomjs の方法を教えてもらえますか

于 2014-11-24T13:41:14.507 に答える