4

画像をダウンロードして壁紙として設定する Python スクリプトを作成しようとしています。残念ながら、Mechanize のドキュメントはかなり貧弱です。スクリプトはリンクを正しくたどっていますが、実際にコンピューターに画像を保存するのに苦労しています。私が調査したところ、 .retrieve() メソッドが機能するはずですが、ファイルのダウンロード先へのパスを指定するにはどうすればよいですか? これが私が持っているものです...

def followLink(browser, fixedLink):
    browser.open(fixedLink)

if browser.find_link(url_regex = r'1600x1200'):

    browser.follow_link(url_regex = r'1600x1200')

elif browser.find_link(url_regex = r'1400x1050'):

    browser.follow_link(url_regex = r'1400x1050')

elif browser.find_link(url_regex = r'1280x960'):

    browser.follow_link(url_regex = r'1280x960')

 return
4

4 に答える 4

9
import mechanize, os
from BeautifulSoup import BeautifulSoup

browser = mechanize.Browser()
html = browser.open(url)
soup = BeautifulSoup(html)
image_tags = soup.findAll('img')
for image in image_tags:
    filename = image['src'].lstrip('http://')
    filename = os.path.join(dir, filename.replace('/', '_'))
    data = browser.open(image['src']).read()
    browser.back()
    save = open(filename, 'wb')
    save.write(data)
    save.close()

これは、Web ページからすべての画像をダウンロードするのに役立ちます。HTMLの解析に関しては、BeautifulSoupまたはlxmlを使用することをお勧めします。ダウンロードは、データを読み取ってローカルファイルに書き込むだけです。独自の値を dir に割り当てる必要があります。それはあなたのイメージが存在する場所です。

于 2013-03-24T02:54:39.063 に答える
3

img src の URL を開くと、画像を取得/ダウンロードできます。

image_response = browser.open_novisit(img['src'])

今すぐファイルを保存するには、fopen を使用します。

with open('image_out.png', 'wb') as f:
    f.write(image_response.read())
于 2013-03-24T01:00:20.650 に答える