美文网首页
麻瓜编程·python实战·1-4作业:爬取Taylor Swi

麻瓜编程·python实战·1-4作业:爬取Taylor Swi

作者: bbjoe | 来源:发表于2016-08-10 11:04 被阅读0次

    我的结果:

    Talor Swift

    我的代码:

    from bs4 import  BeautifulSoup
    import requests, urllib.request
    import time, os
    
    # 收纳图片地址
    img_url = []  
    # 目标网页,20页
    urls = ['http://weheartit.com/inspirations/taylorswift?page={}&before=253730307'.format(str(i)) for i in range(1, 21)]   
    
    #解析网页,获取图片地址,返回列表
    def get_img_urls(url):
        time.sleep(5)
        web_data = requests.get(url)
        soup = BeautifulSoup(web_data.text, 'lxml')
        imgs = soup.select('div[id="main-container"] > div:nth-of-type(2) > div > div > div > div > a > img')
        for img in imgs:
            img = img.get('src')
            img_url.append(img)
        return img_url
    
    # 下载图片
    def img_retrieve(item):
        # 新建路径
        if not os.path.exists(r'C:/Users/Administrator/desktop/Taylor_Switf/'):
            os.mkdir(r'C:/Users/Administrator/desktop/Taylor_Switf/')
        item_path = 'C:/Users/Administrator/desktop/Taylor_Switf/'
       # 下载图片,用序号命名
        urllib.request.urlretrieve(item, item_path + item[-14:].replace('superthumb',str(img_url.index(item))))
    
    #起点
    for url in urls:
        get_img_urls(url)
    
    for item in img_url:
        img_retrieve(item)
    

    我的感想:

    1. 用时两个小时十五分钟
    2. 关于网站(weheartit.com/)我想说:
    • 群里有人说需要代理才能爬,但是我没用,而且之前很多人反映网站速度慢,但我今天却很快。不知道发生了什么,也许改版了?

    • 当我在检查网页结构的时候,我发现图片都是webp格式的:

    • webp格式
    • 但是我爬取出来的数据却是全部都是superthumb.jpg:

    • superthumb.jpg
    • 不知道发生了什么。

    1. 关于代码我想说:
    • 我的select语句用很长,别人的很短,如:'img[class="entry_thumbnail"]
    • 关于文件夹路径,使用 import os。

    检查路径存在:os.path.exists
    建立路径:os.mkdr/os.mkdirs

    1. 其实每次爬虫运行的过程都感觉挺惊险的。希望能快快进步。

    相关文章

      网友评论

          本文标题:麻瓜编程·python实战·1-4作业:爬取Taylor Swi

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