0

自動化する必要がある手順は次のとおりです。

1) ログイン

2) ドロップダウン メニューからオプションを選択します (製品のリストにアクセスするには)。

3) 検索フィールドで何かを検索します (探している製品)

4) リンクをクリックします (製品のオプションを開くため)。

5) 別のリンクをクリックします (上記の製品に関連するすべての .pdf ファイルをより大きな .pdf にコンパイルするには)

6) .pdf が読み込まれるのを待ってからダウンロードします。

これが可能かどうか知りたいです。もしそうなら、どこでそれを行う方法を見つけることができますか?

4

3 に答える 3

1

実際のクリックが含まれていることは極めて重要ですか? PDF をダウンロードするだけの場合は、Requests ライブラリを使用することをお勧めします。Scrapy の使用を検討することもできます。

サイトでの検索に関しては、Fiddler を使用して HTTP POST 要求をキャプチャし、それを Python でレプリケートすることができます。

開始点として役立つ可能性のあるコードを次に示します。これらの関数はサーバーにログインし、ターゲット ファイルをダウンロードします。

def login():
    login_url = 'http://www.example.com'
    payload = 'usr=username&pwd=password'
    connection = requests.Session()
    post_login = connection.post(data=payload,
        url=login_url,
        headers=main_headers,
        proxies=proxies,
        allow_redirects=True)

def download():
    directory = "C:\\example\\"
    url = "http://example.com/download.pdf"
    filename = directory + '\\' + url[url.rfind("/")+1:]
    r = connection.get(url=url,
                       headers=main_headers,
                       proxies=proxies)
    file_size = int(r.headers["Content-Length"])
    block_size = 1024
    mode = 'wb'
    print "\tDownloading: %s [%sKB]" % (filename, int(file_size/1024))
    if r.status_code == 200:
        with open(filename, mode) as f:
            for chunk in r.iter_content(block_size):
                f.write(chunk)
于 2013-08-07T23:23:09.490 に答える
0

もちろん、Selenium Webdriverを使用してください

from selenium import webdriver
browser = webdriver.Chrome()

browser.get('http://your-website.com')
search_box = browser.find_element_by_css_selector('input[id=search]')

search_box.send_keys('my search term')
browser.find_element_by_css_selector('input[type=submit']).click()

これにより、訪問ページを通過し、検索語を入力し、検索をクリックして、問題の段階に進むことができます。残りはAPIを読んでください。

Web ページの多くは JavaScript を介して生成されるため、Mechanize には現在問題があります。そして、それがレンダリングされていない場合、ページで多くのことを行うことはできません.

CSS セレクターを理解していると役立ちます。そうでなければ、id や xpath などで要素を見つけることができます...

于 2013-08-07T23:28:32.073 に答える