【发布时间】:2017-07-28 16:02:44
【问题描述】:
我是抓取和保存文件中的图像的初学者,我引用了其中的代码 This answer.
这是我正在使用的代码片段:
from bs4 import BeautifulSoup
import urllib2
import shutil
import requests
from urlparse import urljoin
import sys
import time
def make_soup(url):
req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"})
html = urllib2.urlopen(req)
return BeautifulSoup(html, 'html.parser')
def get_images(url):
soup = make_soup(url)
images = [img for img in soup.findAll('img')]
print (str(len(images)) + " images found.")
print 'Downloading images to current working directory.'
image_links = [each.get('src') for each in images]
for each in image_links:
try:
filename = each.strip().split('/')[-1].strip()
src = urljoin(url, each)
print 'Getting: ' + filename
response = requests.get(src, stream=True)
# delay to avoid corrupted previews
time.sleep(1)
with open(filename, 'wb') as out_file:
shutil.copyfileobj(response.raw, out_file)
except:
print ' An error occured. Continuing.'
print 'Done.'
if __name__ == '__main__':
#url = sys.argv[1]
get_images('https://i1.adis.ws/i/jpl/sz_093868_a?qlt=80&w=600&h=672&v=1')
虽然我从许多网站获得了结果,但我在代码中使用的 url 不起作用,我希望代码仅能用于此。
请帮我解决这个问题,或者网址有什么问题。
【问题讨论】:
-
不工作是什么意思?你期待什么,而发生了什么?
-
在执行 get_images 函数之前,我使用这些行 b=a.findAll('img') 来检查 html 解析输出,并且我还尝试使用除 lxml 之外的各种解析器。
-
我希望将图像保存在本地,但 beautifulSoup 的 html 解析输出不正确
-
你不是
returnmake_soup函数中的任何东西,它对其他网站如何工作? -
我早些时候退回了它,但由于它是空的而无法得到任何东西
标签: python web-scraping beautifulsoup