#Py之Crawler:爬虫利用随机选取代理访问服务器的方法实现下载某网址上所有的图片到指定文件夹
import urllib.request
import os
import random def open_url(url):
req=urllib.request.Request(url)
req.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116") proxies=['61.135.217.7:80',"122.114.31.177:808","27.19.80.110:808"]
proxy_support = urllib.request.ProxyHandler({'http':random.choice(proxies)})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener) response=urllib.request.urlopen(url)
html=response.read()
return html def get_page(url):
html=open_url(url).decode("utf-8")
a=html.find('current-comment-page')+23
b=html.find(']',a)
print(html[a:b])
return html[a:b] def find_imgs(url):
html=open_url(url).decode("utf-8")
img_addrs = []
a=html.find("img src=")
while a!= -1: b=html.find(".jpg",a,a+255)
if b!=-1:
img_addres.append(html[a+9:b+4])
else:
b=a+9
a=html.find("img src=",b)
return img_addrs def save_imgs(folder, img_addrs):
for each in img_addrs:
filename = each.split('/')[-1]
with open(filename,'wb') as f:
img = open_url('http:' + each)
f.write(img) def download_mm(folder="imgfile",pages=10):
os.mkdir(folder)
os.chdir(folder)
url="http://jandan.net/ooxx/"
page_num=int(get_page(url)) for i in range(pages):
page_num -= i
page_url = url+"page"+str(page_num)+"#comments"
img_addres = find_imgs(page_url)
save_imgs(folder,img_addres) # if __name__=="__main__":
# download_mm()
download_mm()

  

Py之Crawler:爬虫利用随机选取代理访问服务器的方法实现下载某网址上所有的图片到指定文件夹——Jason niu的更多相关文章

  1. [置顶] LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句

    LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句 declare @sql varchar(4000), @dirpath varch ...

  2. 使用nginx的rewrite实现代理指定文件夹命令方法

    使用nginx的rewrite实现代理指定文件夹命令方法 使用nginx代理Tomcat,Tomcat公布web的时候通常都是带着项目名称的. 比方项目名称为"aven".那么公布 ...

  3. Py之Crawler:利用python的爬虫功能实现从各种网站上(以百度贴吧为例)获得你喜欢的照片下载到本地电脑上——Jason niu

    import urllib.requestimport re import os def open_url(url): req=urllib.request.Request(url) req.add_ ...

  4. 28、周末看电影(每周五自动从top250中随机选取三部电影,并将下载链接发到邮箱里)

      练习介绍   在第3关的一个课后练习里,我们爬取了指定电影的下载链接:在第6关的一个课后练习里,我们存储了豆瓣TOP250的榜单信息.   现在,我们完善这个程序,每周五在存储的榜单中,随机抽三部 ...

  5. SVM:利用SVM算法实现手写图片识别(数据集50000张图片)—Jason niu

    import mnist_loader # Third-party libraries from sklearn import svm def svm_baseline(): training_dat ...

  6. 利用图片的灰度平均值来进行分类实现手写图片识别(数据集50000张图片)——Jason niu

    from collections import defaultdict import mnist_loader def main(): training_data, validation_data, ...

  7. 【Python爬虫程序】抓取MM131美女图片,并将这些图片下载到本地指定文件夹。

    一.项目名称 抓取MM131美女写真图片,并将这些图片下载到本地指定文件夹. 共有6种类型的美女图片: 性感美女 清纯美眉 美女校花 性感车模 旗袍美女 明星写真 抓取后的效果图如下,每个图集是一个独 ...

  8. 利用Java实现指定文件夹下的照片以自定义格式移动

    前几天本猿的大学同学,一个漂亮的小姐姐工作时遇到了一个问题,她的需求是,在公司局域网的电脑上下载大量的图片重命名成指定得1.2.3.....以此类推,需要当天完成,我就临时给写了一个小demo. 我的 ...

  9. python-os创建文件夹-create_dir_if_not_exist.py

    #!/bin/usr/env python3 __author__ = 'nxz' import os import argparse MESSAGE = '%s 文件夹已经存在' def creat ...

随机推荐

  1. python 速记正则使用(转)

    目录 python 速记正则使用(转) 正则表达式语法 字符与字符类 量词 组与捕获 断言与标记 条件匹配 正则表达式的标志 Python正则表达式模块 四大功能 两种方法 常用方法 匹配对象的属性与 ...

  2. Kubernetes之canal的网络策略(NetworkPolicy)

    安装要求: 1.我们这里安装的是3.3的版本.kubernetes的要求: 支持的版本 1.10 1.11 1.12 2.CNI插件需要启用,Calico安装为CNI插件.必须通过传递--networ ...

  3. 状态模式-State Pattern(Java实现)

    状态模式-State Pattern 在状态模式(State Pattern)中,类的行为是基于它的状态改变的.当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. State接口 ...

  4. vue md5

    安装 cnpm install js-md5 --save 使用 import md5 from 'js-md5' md5('要加密的内容')

  5. 二叉树(BT)相关

    1.same tree /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * ...

  6. Oracle DB Day03(SQL)

    --day03 --创建一个包含下面信息的表,并添加一些记录待用 --EMPLOYEE_ID NOT NULL NUMBER(6) --FIRST_NAME VARCHAR2(20) --LAST_N ...

  7. Selenium for C#(一) 环境安装

    Selenium 环境安装 本地环境为VS2015,由于selenium 官网不知什么原因打不开. 特记录下VS上使用NuGet安装Selenium的步骤. 利用Package Manager Con ...

  8. css悬浮提示框

    效果图: code: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  9. java学习笔记05-运算符

    算数运算符 +:相加 -:相减 *:相乘 /:相除 %:取余 ++:自增 --:自减 public static void main(String[] args) { int i = 10; int ...

  10. jmeter创建时间函数

    固定格式的年月日 ${__time(yyyyMMdd,)} 20151214 //返回年月日 ${__time(HHmmss,)} 092816 //返回时分秒 ${__time(yyyyMMdd-H ...