簡體   English   中英

python-未定義NameError全局名稱'buf'

[英]python - NameError global name 'buf' is not defined

我不知道這個錯誤是什么意思。 非常感謝您提供有關錯誤或代碼其余部分的任何建議。

import urllib
import urllib2
import os
import re
from bs4 import BeautifulSoup
def image_scrape():
    url = raw_input("Type url for image scrape: ")
    content = urllib2.urlopen(url).read()
    soup = BeautifulSoup(content)
    name = 0
    for tag in soup.find_all(re.compile("img")):
        path = 'C:\Users\Sorcerer\Downloads'
        name += 1
        filename = name
        file_path = "%s%s" % (path, filename)
        downloaded_image = file(file_path, "wb")
        downloaded_image.write(buf)
        downloaded_image.close()

image_scrape()

您的代碼中有一行:

downloaded_image.write(buf)

Python解釋器在您的代碼中之前沒有看到此變量buf 因此,錯誤。

關於其余代碼的想法:

  • 建議使用os模塊執行以下操作:

     file_path = "%s%s" % (path, filename) 

    像這樣:

     import os path = os.path.normpath('C:\\\\Users\\\\Sorcerer\\\\Downloads') file_path = os.path.join(path, name) 
  • 似乎您正在嘗試查找頁面中的所有圖像鏈接,並嘗試將其保存到file_path引用的位置的文件系統中。 假設到圖像的鏈接在變量tag ,這是您要做的:

     import requests r = requests.get(tag, stream=True) if r.status_code == 200: with open(name, 'wb') as f: for chunk in r.iter_content(): f.write(chunk) f.close() 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM