python3.5学习笔记--一个简单的图片爬虫

参考资料:http://v.qq.com/boke/page/q/g/t/q01713cvdgt.html

目的:爬取网站图片

实际上以上链接的视频中已经将整个过程说的非常明白了,稍微有点计算机基础的人想来都不难实现。

所以,废话不多说,直接粘我写的脚本了事,有问题看视频即可。

#################################################################3

import os,requests,urllib.requestfrom bs4 import BeautifulSoup

header = {‘User-Agent‘:‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX‘,  #这两个参数user-agent以及cookie,随便找一个有“开发者工具”功能的浏览器都可以看到,视频里有讲到,这我就不暴露了          ‘Cookie‘:‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX‘}folter_path = ‘E://temp/xxxxxx/‘

def make_file(path):            #创建文件夹的函数,并返回一个图片存贮路径    if not os.path.isdir(folter_path):        os.mkdir(folter_path)    t = os.path.join(folter_path,str(path) + ‘/‘)    if not os.path.isdir(t):        os.mkdir(t)    return t

def down_pic(start_num,end_num,type):  #爬取图片的函数,参数是:起始页,结束页,下载类型    for num in range(int(start_num),int(end_num)):        url = ‘http://xxxxxx.net/ooxx/page-{}‘.format(num)  #具体网址见视频吧,或者自己找一个也可以,这个随意。        source_code =  requests.get(url,headers = header)        plain_txt = source_code.text        Soup = BeautifulSoup(plain_txt)        download_link = []        print(‘get‘ + str(num))

        for pic_tag in Soup.find_all(‘img‘):            pic_link = pic_tag.get(str(type))            download_link.append(pic_link)

        while None in download_link:   #这块实际上用处不大,因为用type做了区分,不会产生垃圾数据,不过懒得去掉了。            download_link.remove(None)

        for item in download_link:    #下载图片            urllib.request.urlretrieve(item,pic_path + item[-10:])

start_num = 1760end_time = 1767type = {‘jpg‘:‘src‘,‘gif‘:‘org_src‘}    #类型字典

pic_path = make_file(type[‘gif‘])down_pic(start_num,end_time,type[‘gif‘])

##################################################################################代码比视频教程多的东西,是以下几个方面:1、增加了创建图片存贮路径的函数和功能,并对下载类型做了区分。2、分类型下载图片,如果你使用src区分,是下载不了完整的gif图的,这个自行发现吧。3、额,感谢视频作者吧,既然视频作者是公开发出的,我这发出链接应该还OK吧
时间: 2024-12-14 18:47:27

python3.5学习笔记--一个简单的图片爬虫的相关文章

0915-----Linux设备驱动 学习笔记----------一个简单的字符设备驱动程序

0.前言 研究生生活一切都在步入正轨,我也开始了新的学习,因为实在不想搞存储,所以就决定跟师兄学习设备驱动,看了两星期书,终于有点头绪了,开始记录吧! 1.准备工作 a)查看内核版本 uname -r b)安装内核源码树(http://www.cnblogs.com/Jezze/archive/2011/12/23/2299871.html) 在www.linux.org上下载源码编译,这里是.xz格式,需要安装解压工具,xz-utils: 解压方法示例:xz -d linux-3.1-rc4.

《COM原理与应用》学习笔记——一个简单的COM组件的实现

今天带来一个简单的COM组件的实现,非常的简单.这个组件只是简单的完成了整数的加减乘除~ 首先,先罗列需要的COM接口,这里需要的接口非常简单,就是加减乘除的接口.所以定义一个ICalc类,当然这个类继承于IUnknown. 1 class ICalc : public IUnknown 2 { 3 public: 4 virtual long __stdcall add(long a, long b) = 0; 5 virtual long __stdcall minus(long a, lo

【转】jmeter学习笔记——一个简单的接口测试

实际测试的例子 目标: 获取城市的天气数据: 第一步: 发送request 获取城市的城市代号http://toy1.weather.com.cn/search?cityname=上海 从这个请求的response 中获取到上海的城市代码. 比如: 上海的地区代码是101020100 上海动物园的地区代码是:  10102010016A 第二步:  发送request 到: http://www.weather.com.cn/weather2d/101020100.shtml   可以得到该城市

node.js在windows下的学习笔记(2)---简单熟悉一些命令

1.打开如下的安装 2.输入node -v,显示node的版本号 3.输入node --help.显示帮助命令 4.自己用一个文本编辑器编写一下代码,保存为text.js,然后在控制台输入node.exe  text.js的路径(直接把这个js文件拖到控制台自动显示路径),按下回车键 var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {&

加壳学习笔记(三)-简单的脱壳思路&调试思路

首先一些windows的常用API: GetWindowTextA:以ASCII的形式的输入框 GetWindowTextW:以Unicaode宽字符的输入框 GetDlgItemTextA:以ASCII的形式的输入框 GetDlgItemTextW:以Unicaode宽字符的输入框 这些函数在使用的时候会有些参数提前入栈,如这函数要求的参数是字符串数目.还有大小写啦之类的东西,这些东西是要在调用该函数之前入栈,也就是依次push,就是说一般前面几个push接着一个call,那前面的push可能

Node.js学习笔记(3) - 简单的curd

这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简单介绍 这次demo,只涉及到简单的curd操作,用到的数据库是mongo,所以要安装mongo数据库,数据库连接驱动是mongoose: 当然关于mongo的驱动有很多,比如mongous mongoskin等:(详见http://cnodejs.org/topic/4f4ca8e0940ce2e

Android学习笔记进阶之在图片上涂鸦(能清屏)

Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java [java] view plaincopy package xiaosi.handWriting; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import andro

windows笔记-一个简单的windows GUI应用程序

#include<windows.h> // 编写Windows程序必须包含的头文件 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); // 声明窗口函数原型 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ HWND hwnd; // 定义窗口句柄 MSG msg; // 定义一个用来存储消息的变量

一个简单的图片切换特效

如图所示. 该图片切换特效实现很简单,而且兼容性很好. html页面如下 <div class="wrapper"> <div id="focus"> <ul> <li><a href="http://www.lanrentuku.com/" target="_blank"><img src="img/01.jpg" alt="QQ