静的Webページの画像を簡単に取得


なお、ここで紹介する単純爬虫類は、正規表現の単純な応用を利用するだけで、直接静的Webページにのみ適用される.一方,URLを転送するページ,アドレスに中国語を含むページ,ブラウザタイプを監視するページ,動的ページなどの複雑なアクセスニーズに対しては,Pythonのurllibなどのライブラリをさらに深く適用することで実現できる.
import urllib.request
import re

def getHttp(url):
    
    h = urllib.request.urlopen(url)
    html =h.read()
    # print(html)
    return html

def downloadImg(html):
    
    reg = r'src=".*?\.jpg"'
    urls = re.findall(reg,html)
    x = 0
    for url in urls:
        print(url)
        urllib.request.urlretrieve(url[5:-1],"%s.jpg"%x)
        x += 1

def main():
    html = getHttp('http://www.nipic.com').decode('UTF-8')
    downloadImg(html)
    
if __name__ == "__main__":
    main()
    
結果:
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095056_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095119_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095125_1.jpg"
src="http://icon.nipic.com/BannerPic/20200724/original/20200724105044_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095134_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095152_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095159_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095243_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095254_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095300_1.jpg"
src="http://icon.nipic.com/BannerPic/20200720/original/20200720095307_1.jpg"