0
대부분의 경우 작동하는 간단한 이미지 스크레이퍼 스크립트를 작성했습니다. 나는 좋은 그림이있는 웹 사이트를 발견했다. 나는 링크를 긁어 모으고 싶다. 스크립트는 정상적으로 작동하지만 불필요한 base64
데이터 이미지 링크를 인쇄합니다. 이 base64
링크를 어떻게 제외시킬 수 있습니까?BeautifulSoup의 원치 않는 base64 링크를 제외하십시오.
import requests
from bs4 import BeautifulSoup
r = requests.get('https://www.hongkiat.com/blog/60-most-execellent-ubuntu-wallpapers/')
soup = BeautifulSoup(r.content, 'lxml')
for link in soup.find_all('img'):
image = (link.get('src'))
print image
출력 :
https://assets.hongkiat.com/uploads/60-most-execellent-ubuntu-wallpapers/cloudy-ubuntu-mate.jpg
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
https://assets.hongkiat.com/uploads/60-most-execellent-ubuntu-wallpapers/ubuntu-feeling.jpg
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
https://assets.hongkiat.com/uploads/60-most-execellent-ubuntu-wallpapers/two-gentlemen-in-car.jpg
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
업데이트. 도움 주셔서 감사합니다. 완성 된 코드는 모든 이미지를 다운로드하는 것처럼 보입니다. 건배 :)
import requests
from bs4 import BeautifulSoup
r = requests.get('https://www.hongkiat.com/blog/60-most-execellent-ubuntu-wallpapers/')
img_url = 'https://assets.hongkiat.com/uploads/60-most-execellent-ubuntu-wallpapers/'
soup = BeautifulSoup(r.content, 'lxml')
for link in soup.select('img[src$=".jpg"]'):
image = (link['src'])
image_name = (img_url + image).split('/')[-1]
print ('Downloading: {}'.format(image_name))
r2 = requests.get(image)
with open(image_name, 'wb') as f:
f.write(r2.content)
가, 감사합니다. 이 경우 find_all 대신 select를 사용하면됩니까? 그리고'('img [src $ = ". jpg"]')'? – uzdisral
수정 된 부분보기. – SIM
굉장합니다. 내 코드도 업데이트했습니다. 다시 한번 감사드립니다. – uzdisral