• Python 爬虫-爬取京东手机页面的图片


    具体代码如下:

    __author__ = 'Fred Zhao'
    
    import requests
    from bs4 import BeautifulSoup
    import os
    from urllib.request import urlretrieve
    
    class Picture():
    
        def __init__(self):
            self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'}
            self.base_url = 'https://list.jd.com/list.html?cat=9987,653,655&page='
            self.base_path = os.path.dirname(__file__)
    
        def makedir(self, name):
            path = os.path.join(self.base_path, name)
            isExist = os.path.exists(path)
            if not isExist:
                os.makedirs(path)
                print("File has been created.")
            else:
                print('OK!The file is existed. You do not need create a new one.')
            os.chdir(path)
    
        def request(self, url):
            r = requests.get(url, headers=self.headers)
            return r
    
        def get_img(self, page):
            r = self.request(self.base_url + str(page))
            plist = BeautifulSoup(r.text, 'lxml').find('div', id='plist')
            item = plist.find_all('li', class_='gl-item')
            print(len(item))
            self.makedir('pictures')
            num = 0
            for i in item:
                num += 1
                imglist = i.find('div', class_='p-img')
                print(num)
                img = imglist.find('img')
                print('This is %s picture' %num)
                if img.get('src'):
                    url = 'https:' + img.get('src')
                    fileName = img.get('src').split('/')[-1]
                    urlretrieve(url, filename=fileName)
    
                elif img.get('data-lazy-img'):
                    url = 'https:' + img.get('data-lazy-img')
                    fileName = img.get('data-lazy-img').split('/')[-1]
                    urlretrieve(url, filename=fileName)
    
    
    
    if __name__ == '__main__':
        picture = Picture()
        for i in range(2): #控制爬取的页数
            picture.get_img(i+1)
    
  • 相关阅读:
    rocketmq 命令示例
    原 荐 使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控
    业务系统中最核心的状态设计,异常 case. (系统设计)
    大数据架构分析
    开源 java 电商系统
    数据一致性对账平台架构
    管理中遇到的问题--人,组织上的问题
    腾讯后台开发面试题
    理解inode
    TCP序列号和确认号
  • 原文地址:https://www.cnblogs.com/fredkeke/p/7001782.html
Copyright © 2020-2023  润新知