文档章节

python脚本多线程爬虫爬电脑壁纸

chem_dev
 chem_dev
发布于 2016/08/09 14:58
字数 366
阅读 45
收藏 2
点赞 0
评论 0
  1. 安装python 3.4.2
  2. 安装相关的库:
  3. pip install beautifulsoup4
    
    pip install threadpool
  4. #!/usr/bin/python
    #fileencoding:utf-8
    '''
    EXCEL DATA ANALYSIS
    Created on 2016年08月09日
    '''
    import threadpool
    from bs4 import BeautifulSoup
    import os
    #当前目录
    BASE_DIR = os.path.split(os.path.realpath(__file__))[0]
    #起始和结束页
    begin_page  = 1
    endindex = 5
    #分辨率
    scale = "2560x1600"
    base_page_url = "http://wallpaperswide.com/page/"
    base_url = "http://wallpaperswide.com"
    import urllib.request
    import socket
    #测试进行一页
    def main(page):
        socket.setdefaulttimeout(20)
        #http://wallpaperswide.com/page/2
        response = urllib.request.urlopen(base_page_url+str(page))
        html = response.read().decode('utf-8',"ignore")
        soup = BeautifulSoup(html,"html.parser")
        url_list = []
        for ul in soup.select("ul.wallpapers"):
            for a in ul.select("a"):
                url_list.append(a.get('href'))
        #print (url_list)
        list_target = []
        if url_list:
            for item in url_list:
                response = urllib.request.urlopen(base_url+item)
                html = response.read().decode('utf-8',"ignore")
                soup1 = BeautifulSoup(html,"html.parser")
                for div in soup1.select("div.wallpaper-resolutions"):
                    for target_a in div.select("a"):
                        if target_a.string == scale:
                            list_target.append(base_url+target_a.get('href'))
        for img_url in list_target:
            imgName = img_url[img_url.rindex("/")+1:]
            #targetDir = os.path.join(BASE_DIR,"2560x1600")
            #targetPath = os.path.join(targetDir,imgName)
            #urllib.urlretrieve(dowloadUrl, targetPath)
            header = {
                    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64)\
                  AppleWebKit/537.36 (KHTML, like Gecko)\
                  Chrome/35.0.1916.114 Safari/537.36',
                    'Cookie': 'AspxAutoDetectCookieSupport=1'
                    }
            request = urllib.request.Request(img_url, None, header)
            target_path = os.path.join(BASE_DIR,"2560x1600")
            if not os.path.exists(target_path):
                os.makedirs(target_path)
            targetDir = os.path.join(target_path,imgName)
            response = urllib.request.urlopen(request)
            #print response.headers['Content-Length']
            with open(targetDir,"wb") as f:
                f.write(response.read())
            print ("page %s" % page)
            print ("dowload %s ok" % img_url)
    def print_now(request, n):
        print ('%s - %s' % (request.requestID, n))
    if __name__ == "__main__":
    
        if not type(begin_page) == type(1) or not type(endindex) == type(1) or not begin_page <endindex:
            print("开始和结束页必须为整数,且开始页必须小于结束页")
        else:
            pool = threadpool.ThreadPool(50)
            requests = threadpool.makeRequests(main, range(begin_page,endindex+1), print_now)
            [pool.putRequest(req) for req in requests]
            pool.wait()

     

 

        

© 著作权归作者所有

共有 人打赏支持
chem_dev
粉丝 14
博文 40
码字总数 13974
作品 0
海淀
程序员
手把手教你写网络爬虫(2):迷你爬虫架构

原文出处:拓海 介绍 大家好!回顾上一期,我们在介绍了爬虫的基本概念之后,就利用各种工具横冲直撞的完成了一个小爬虫,目的就是猛、糙、快,方便初学者上手,建立信心。对于有一定基础的读...

拓海 ⋅ 04/27 ⋅ 0

一个月入门Python爬虫,快速获取大规模数据

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索...

Python开发者 ⋅ 04/25 ⋅ 0

Python 数据挖掘学习 一 结巴分词

近期,想对古典小说进行索引,和知识挖掘,所以研究了下python数据挖掘方面的知识 Python安装 python学习 一 python语法,及变量类型 python学习 二 爬一个图片网站上 python学习 二 02 爬一...

shuilan0066 ⋅ 01/22 ⋅ 0

node爬虫获取漫威超级英雄电影海报

昨天去看了《复联3》的首映,当我提前15分钟进入影院的时候, 看到了粉丝们取票的长队, 顿时有一种跨年夜的感觉... 最近看了node爬虫的一些知识, 这里用node爬取一下漫威官网的电影海报! 小结:...

木子昭 ⋅ 05/12 ⋅ 0

不是你学不会Python,只说你的学习方法不对!那如何学习Python呢

有没有那么一个瞬间,你想放弃学习Python? 做任何事情一定有在短期内简单可行的方法。学习不应该是苦差事,而应该是快乐的,重要的是找到适合自己的学习方法。 很多人觉得自己一定能够自学好...

Python燕大侠 ⋅ 06/06 ⋅ 0

Python获取全网电影,深夜有小电影看难道不是你学习的初衷吗?

你以为这是黑客?NO,这只是简单的Python爬虫。如今各种各样的影视Vip收费出现在我们的视野中,对于我们来说也许是一部期待已久的电影电视,可是对于网站,App开发人员来说只是一组数据,为了...

柯西带你学编程 ⋅ 06/05 ⋅ 0

5个python爬虫教材,让小白也有爬虫可写,含视频教程!

认识爬虫   网络爬虫,如果互联网是一张蜘蛛网,网络爬虫既是一个在此网上爬行的蜘蛛,爬了多少路程即获取到多少数据。 python写爬虫的优势   其实以上功能很多语言和工具都能做,但是用...

柯西带你学编程 ⋅ 06/12 ⋅ 0

想用 Python 找到一份好工作?这4种工作最热门!

身边有不少朋友最近都开始学习python,大多都在学了一两个月之后来问小编,我现在已经入行了,能去找什么样的工作呢? 小编只能说: 入行!=找工作 那么,自学python的人,如何才能找到满意的工...

python达人 ⋅ 05/16 ⋅ 0

高级爬虫(一):Scrapy爬虫框架的安装

Hi 小伙伴们差不多有半个月没有更新干货了,一直有点忙,而且这中间还有曲折过程,也就没有更新文章. 但今天无论如何也要更新一篇文章,接下来是爬虫高级篇重点讲解的地方! 最近会连载Scrap...

Python绿色通道 ⋅ 04/22 ⋅ 0

福利 | Python专场竞技,这些书给你加把力!

端午节将至,各地龙舟备战竞技,粽子部队也整装待发。小编掐指一算,这种热闹的时节,是时候展现真正的技(fu)术(li)了! (“Python号”龙舟闪亮登场!) Python作为当下最流行的编程语言...

⋅ 06/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部