用python从网站获取图像-';模块';对象不可调用

用python从网站获取图像-';模块';对象不可调用,python,image,python-3.x,web,Python,Image,Python 3.x,Web,这是我的程序,我需要的是从网站收集png扩展图像,然后根据它们的名称保存。代码如下: from urllib.request import urlopen from urllib.request import urlretrieve import re webpage = urlopen('http://www.techradar.com/news/internet/web/12-best-places-to-get-free-images-for-your-site-624818').rea

这是我的程序,我需要的是从网站收集png扩展图像,然后根据它们的名称保存。代码如下:

from urllib.request import urlopen
from urllib.request import urlretrieve
import re

webpage = urlopen('http://www.techradar.com/news/internet/web/12-best-places-to-get-free-images-for-your-site-624818').read()
patFinderImage = re().compile('<img src="(.*)png" />')

filename = ("D:\test\test.json")
imgUrl = re.findall(patFinderImage, webpage)


print("now-----")

actually_download = False

if actually_download:

         filename = imgUrl.split('/')[-1]
         urlretrieve(imgUrl, filename)
      #   fileName = basename(urlsplit(imgUrl)[2])
         data = open(filename,'wb')
         data.write(data)
         data.close()
从urllib.request导入urlopen
从urllib.request导入urlretrieve
进口稀土
webpage=urlopen('http://www.techradar.com/news/internet/web/12-best-places-to-get-free-images-for-your-site-624818)。读()
patFinderImage=re()。编译(“”)
文件名=(“D:\test\test.json”)
imgUrl=re.findall(patFinderImage,网页)
打印(“现在------”)
实际上下载=False
如果你真的下载:
filename=imgUrl.split('/')[-1]
urlretrieve(imgUrl,文件名)
#fileName=basename(urlspit(imgUrl)[2])
数据=打开(文件名为“wb”)
data.write(数据)
data.close()
以下是错误:

pydev debugger: starting
Traceback (most recent call last):
  File "C:\Users\joh\Downloads\eclipse\plugins\org.python.pydev_3.3.3.201401272249\pysrc\pydevd.py", line 1738, in <module>
    debugger.run(setup['file'], None, None)
  File "C:\Users\joh\Downloads\eclipse\plugins\org.python.pydev_3.3.3.201401272249\pysrc\pydevd.py", line 1355, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Users\joh\Downloads\eclipse\plugins\org.python.pydev_3.3.3.201401272249\pysrc\_pydev_execfile.py", line 38, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc) #execute the script
  File "C:\Users\joh\workspace\new2\url2.py", line 15, in <module>
    imgUrl = re().findall(patFinderImage, webpage)
TypeError: 'module' object is not callable
pydev调试器:正在启动
回溯(最近一次呼叫最后一次):
文件“C:\Users\joh\Downloads\eclipse\plugins\org.python.pydev_3.3.3.20140127249\pysrc\pydevd.py”,第1738行,在
运行(安装程序['file'],无,无)
文件“C:\Users\joh\Downloads\eclipse\plugins\org.python.pydev_3.3.3.20140127249\pysrc\pydevd.py”,第1355行,正在运行
pydev_imports.execfile(文件、全局、局部)#执行脚本
文件“C:\Users\joh\Downloads\eclipse\plugins\org.python.pydev_3.3.3.20140127249\pysrc\_pydev_execfile.py”,第38行,在execfile中
exec(compile(contents+“\n”,file,'exec'),glob,loc)#执行脚本
文件“C:\Users\joh\workspace\new2\url2.py”,第15行,在
imgUrl=re().findall(patFinderImage,网页)
TypeError:“模块”对象不可调用

您在这一行有错误:

imgUrl = re().findall(patFinderImage, webpage)
由于re是一个不起作用的模块,它应该:

imgUrl = re.findall(patFinderImage, webpage)
但后来你又犯了一个错误

正确的代码是(我添加了.decode(“utf-8”)——read()的内容是bytes类型的,所以在尝试将其解码为json对象之前,需要将其转换为字符串

import re

from urllib.request import  urlopen
from urllib.request import  urlretrieve

webpage = urlopen('http://www.techradar.com/news/internet/web/12-best-places-to-get-free-images-for-your-site-624818').read().decode("utf-8")
patFinderImage = re.compile('<img src="(.*)png" />')

filename = ("/tmp/test.json.")
imgUrl = re.findall(patFinderImage, webpage)


print("now-----")

actually_download = False

if actually_download:

         filename = imgUrl.split('/')[-1]
         urlretrieve(imgUrl, filename)
      #   fileName = basename(urlsplit(imgUrl)[2])
         data = open(filename,'wb')
         data.write(data)
         data.close()
重新导入
从urllib.request导入urlopen
从urllib.request导入urlretrieve
webpage=urlopen('http://www.techradar.com/news/internet/web/12-best-places-to-get-free-images-for-your-site-624818“).read().decode(“utf-8”)
patFinderImage=re.compile(“”)
文件名=(“/tmp/test.json”)
imgUrl=re.findall(patFinderImage,网页)
打印(“现在------”)
实际上下载=False
如果你真的下载:
filename=imgUrl.split('/')[-1]
urlretrieve(imgUrl,文件名)
#fileName=basename(urlspit(imgUrl)[2])
数据=打开(文件名为“wb”)
data.write(数据)
data.close()

顺便说一句,这一行imgUrl=re().findall(patFinderImage,webpage)不在您粘贴的源代码中,是否使用确保回溯来自此版本?imgUrl=re.findall(patFinderImage,webpage)我也使用这一行,即使我尝试了re().findall(patFinderImage,webpage),但它会生成以下错误:imgUrl=re().findall(patFinderImage,网页)TypeError:“module”对象不可调用问题是,您粘贴的代码与回溯不对应,这使得帮助您更加困难。imgUrl=re.findall(patFinderImage,网页)我也使用这一行,即使我尝试了re()。findall(patFinderImage,网页)但它会生成以下错误:imgUrl=re().findall(patFinderImage,webpage)TypeError:“module”对象不可调用我粘贴了您的工作代码。如果它解决了您的问题,请将答案标记为一个带星号的工作代码。我只是在更改后运行,但现在收到此错误:webpage=urlopen('AttributeError:'function'对象没有属性'decode',在复制粘贴过程中您需要更加小心-您再次错过了一些内容。您粘贴的错误来自:webpage=urlopen('…')。decode(“utf-8”),但您需要webpage=urlopen('…')。read()。decode(“utf-8”)(您错过了“read()”).现在它可以工作了..谢谢你,但没有在文件中保存任何图像.为什么会这样?