美文网首页我爱编程
Python爬取Sketch-A-Day网站内容

Python爬取Sketch-A-Day网站内容

作者: KURAUDO4869 | 来源:发表于2018-06-28 00:06 被阅读0次

    程序所做的事:

    • 加载主页;
    • 保存该页的图片;
    • 转入前一张图片的链接;
    • 重复直到第一张图片。

    方案实现:

    • 利用 requests 模块下载页面。
    • 利用 Beautiful Soup 找到页面中手绘图像的 URL。
    • 利用 iter_content()下载手绘图像,并保存到硬盘。
    • 找到前一张手绘的链接 URL,然后重复。
    #! python3
    
    import requests, os, bs4
    
    url = 'http://www.sketch-a-day.com/page/1'
    os.makedirs('SketchADay', exist_ok=True)
    while not url.endswith('#'):
        for i in range(1, 969):
            url = 'http://www.sketch-a-day.com/page/' + str(i)
            print('Downloading page %s...' % url)
            res = requests.get(url)
            try:
                res.raise_for_status()
                soup = bs4.BeautifulSoup(res.text, "html.parser")
                imgElem = soup.select('.content img')
                if imgElem == []:
                    print('Could not find sketch image.')
                else:
                    imgUrl = imgElem[0].get('src')
                    print('Downloading image %s...' % (imgUrl))
                    res = requests.get(imgUrl)
                    res.raise_for_status()
                    print(os.path.join('SketchADay', '%04d_' % i + os.path.basename(imgUrl)))
                    imageFile = open(os.path.join('SketchADay', '%04d_' % i + os.path.basename(imgUrl)), 'wb')
                    for chunk in res.iter_content(100000):
                        imageFile.write(chunk)
                    imageFile.close()
                # prevLink = soup.select('a[class="next"]')[0]
                # url = prevLink.get('href')
            except Exception as e:
                continue        
    print('Done.')
    

    环境:python3

    相关文章

      网友评论

        本文标题:Python爬取Sketch-A-Day网站内容

        本文链接:https://www.haomeiwen.com/subject/qyjwyftx.html