Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在localhost上托管图像的html页面,并通过web爬虫访问该页面,然后下载图像_Python - Fatal编程技术网

Python 在localhost上托管图像的html页面,并通过web爬虫访问该页面,然后下载图像

Python 在localhost上托管图像的html页面,并通过web爬虫访问该页面,然后下载图像,python,Python,我已经用python创建了一个web爬虫,它可以访问网页并从该网页下载图像。网络爬虫的代码为: # ImageDownloader.py # Finds and downloads all images from any given URL. import urllib2 import re from os.path import basename from urlparse import urlsplit url = "http://www.yahoo.com" urlContent

我已经用python创建了一个web爬虫,它可以访问网页并从该网页下载图像。网络爬虫的代码为:

# ImageDownloader.py
# Finds and downloads all images from any given URL.

import urllib2 
import re from os.path
import basename from urlparse 
import urlsplit

url = "http://www.yahoo.com"

urlContent = urllib2.urlopen(url).read()

# HTML image tag: <img src="url" alt="some_text"/>

imgUrls = re.findall('img.*?src="(.*?)"', urlContent)

# download all images

for imgUrl in imgUrls:

     try:
         imgData = urllib2.urlopen(imgUrl).read()
         fileName = basename(urlsplit(imgUrl)[2])
         output = open(fileName,'wb')
         output.write(imgData)
         output.close()
     except:
         pass
#ImageDownloader.py
#从任何给定URL查找并下载所有图像。
导入urllib2
从os.path导入re
从urlparse导入basename
导入URL拆分
url=”http://www.yahoo.com"
urlContent=urllib2.urlopen(url).read()
#HTML图像标记:
imgUrls=re.findall('img.*?src=“(.*?”),urlContent)
#下载所有图片
对于imgUrls中的imgUrl:
尝试:
imgData=urllib2.urlopen(imgUrl.read())
fileName=basename(urlspit(imgUrl)[2])
输出=打开(文件名为“wb”)
输出写入(imgData)
output.close()
除:
通过
我必须在课堂上展示一个演示,所以我用一些图像构建了一个简单的网页,并将其托管在
localhost
上,但是我创建的网络爬虫没有访问html页面,也没有下载图像


有人能帮我从爬虫程序访问
localhost
上的html页面吗?

你需要将脚本指向localhost,而不是“www.yahoo.com”

话虽如此,您可以做很多事情来改进该计划:

  • 永远不要盲目地捕捉异常,然后什么也不做。让异常向上传播,或者做一些有用的事情

  • 对于像这样的简单脚本,创建一个执行您的工作的函数,并从
    中调用它,如果uuuu name\uuuuu=='\uuuuuuu main\uuuu':

  • 您可以使用BeautifulSoup,而不是使用正则表达式来查找图像,这将为您的程序添加一些结构,但这可能不是必需的

  • 通过CSS包含图像是很常见的,因此也值得一看


您的正则表达式应该是
img.+?src=(.+?)”
。我更改后,
findall()
返回了一个不错的图像URL列表,并在我的目录中充满了图像


也就是说,一定要听从@knutin的建议,尤其是使用BeautifulSoup而不是regex。虽然这里的regex有效,但它可能不够健壮,无法处理您抛出的所有HTML。我最近一直在做一些HTML清理工作(没有图像那么简单)这绝对是一件轻而易举的事。

在github上添加类似if[“.jpg”、“.png”等内容,在链接中查找图片并下载:)

是的,我试过了,也就是说,我试过将sript指向本地主机,然后指向它不工作。你说的“不工作”是什么意思?发生了什么?连接被拒绝?404?代码崩溃?浏览页面是否有效?如果你对端口进行telnet并发出GET/mypage,会发生什么?脚本被逐字复制