프로그래밍에 익숙하지 않아 웹 사이트에서 이미지 및 PDF를 다운로드하려고합니다. 소스 코드에서 필요한 항목은 부분 URL이있는 옵션 태그에 있습니다. 사이트는 드롭 다운 메뉴에 이러한 항목을 나열하고 iframe에 표시하지만 전체 URL을 사용하여 각 항목을 자체 페이지에서 열 수 있습니다.스크랩 한 URL 수정 및 확장명 변경
지금까지 내 코드는 옵션을 찾아 페이지의 기본 주소에 부분 URL을 추가하여 각 옵션에 대한 전체 URL을 만들고 .tif 및 .TIF URL에서 최종 "/"를 제거하고 " .pdf ".
그러나 .tif 및 .TIF URL의 경우 새 페이지에서 열려면 '변환'을 'pdf'로 변경해야합니다. .tif.pdf 및 .TIF.pdf URL 만 변경하고 나머지는 변경하지 않는 방법이 있습니까?
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import os
my_url = 'http://example.com'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
options = page_soup.findAll("select",{"id":"images"})[0].findAll("option")
values = [o.get("value") for o in options]
split_values = [i.split("|", 1)[0] for i in values]
# The option value is split to separate the url from its label
# <option value="/convert/ASRIMG/new/hop.TIF/|New Form"></option>
new_val = []
for val in split_values:
ext = os.path.splitext(val.rstrip('/'))[-1]
new_ext = ext
if ext.lower() == '.tif':
new_ext += '.pdf'
new_val.append(val.rstrip('/').replace(ext, new_ext))
for i in range (len(new_val)):
image_urls = ('http://example.com' + new_val[i])
나의 현재 결과 :
print (new_val)
/ASRIMG/good.jpg
/ASRIMG/foo/bar1.jpg
/ASRIMG/foo/bar2.jpg
/ASRIMG/foo/bar3.jpg
/convert/ASRIMG/new/hop.TIF.pdf
/convert/REG/green1.tif.pdf
/convert/REG//green2.tif.pdf
/convert/SHIP/green3.tif.pdf
/convert/SHIP/green4.tif.pdf
/convert/SHIP/green5.tif.pdf
/SKETCHIMG/001.png
/SKETCH/002.JPG
print (image_urls)
http://example.com/ASRIMG/good.jpg
http://example.com/ASRIMG/foo/bar1.jpg
http://example.com/ASRIMG/foo/bar2.jpg
http://example.com/ASRIMG/foo/bar3.jpg
http://example.com/convert/ASRIMG/new/hop.TIF.pdf
http://example.com/convert/REG/green1.tif.pdf
http://example.com/convert/REG//green2.tif.pdf
http://example.com/convert/SHIP/green3.tif.pdf
http://example.com/convert/SHIP/green4.tif.pdf
http://example.com/convert/SHIP/green5.tif.pdf
http://example.com/SKETCHIMG/001.png
http://example.com/SKETCH/002.JPG
내가 필요한 것 :
http://example.com/ASRIMG/good.jpg
http://example.com/ASRIMG/foo/bar1.jpg
http://example.com/ASRIMG/foo/bar2.jpg
http://example.com/ASRIMG/foo/bar3.jpg
http://example.com/pdf/ASRIMG/new/hop.TIF.pdf
http://example.com/pdf/REG/green1.tif.pdf
http://example.com/pdf/REG//green2.tif.pdf
http://example.com/pdf/SHIP/green3.tif.pdf
http://example.com/pdf/SHIP/green4.tif.pdf
http://example.com/pdf/SHIP/green5.tif.pdf
http://example.com/SKETCHIMG/001.png
http://example.com/SKETCH/002.JPG
귀하의 빠른 회신에 감사드립니다 결국
.tif.pdf
을 추가합니다. 이 코드를 시도했지만 모든 URL에 .tif.pdf를 추가했습니다. '.tif.pdf' (좋은 것) 외에도'.jpg.tif.pdf','.TIF.tif.pdf','png.tif.pdf'가 있습니다.). – shybr'.TIF /'를 수정하는 코드를 수정했습니다. '.jpg.tif'와'.png.tif'에 예상되는 결과는 무엇입니까? –
'.jpg','.JPG' 및'.png'는 변경되어서는 안됩니다. '.TIF /'와'.tif /'만이'.TIF.pdf'와'.tif.pdf'로 바뀝니다 – shybr