返回顶部
首页 > 资讯 > 后端开发 > Python >Python制作爬虫抓取美女图
  • 883
分享到

Python制作爬虫抓取美女图

爬虫美女图Python 2022-06-04 19:06:40 883人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

  作为一个新世纪有思想有文化有道德时刻准备着的?潘磕星嗄辏?谙衷谡庋?桓錾缁嶂校?奶畚掖舐?サ种拼蟀俣鹊那疤嵯拢?皇露?仙贤?涔?Y看看斗鱼翻翻美女图片那是必不可少的,可是美图虽多翻页费劲!今天我们就搞个

  作为一个新世纪有思想有文化有道德时刻准备着的?潘磕星嗄辏?谙衷谡庋?桓錾缁嶂校?奶畚掖舐?サ种拼蟀俣鹊那疤嵯拢?皇露?仙贤?涔?Y看看斗鱼翻翻美女图片那是必不可少的,可是美图虽多翻页费劲!今天我们就搞个爬虫把美图都给扒下来!本次实例有2个:煎蛋上的妹子图,某网站的rosi图。我只是一个学习python的菜鸟,技术不可耻,技术是无罪的!!!

  煎蛋:

  先说说程序的流程:获取煎蛋妹子图URL,得到网页代码,提取妹子图片地址,访问图片地址并将图片保存到本地。Ready? 先让我们看看煎蛋妹子网页:

查看图片

  我们得到URL为:Http://jandan.net/ooxx/page-1764#comments 1764就是页码, 首先我们要得到最新的页码,然后向前寻找,然后得到每页中图片的url。下面我们分析网站代码写出正则表达式

查看图片

  根据之前文章的方法我们写出如下函数getNewPage:


def __getNewPage(self):
    pageCode = self.Get(self.__Url)
    type = sys.getfilesystemencoding()
    pattern = re.compile(r'<div .*?cp-pagenavi">.*?<span .*?current-comment-page">[(.*?)]</span>',re.S)
    newPage = re.search(pattern,pageCode.decode("UTF-8").encode(type))
    print pageCode.decode("UTF-8").encode(type)
    if newPage != None:
      return newPage.group(1)
    return 1500

  不要问我为什么如果失败返回1500。。。 因为煎蛋把1500页之前的图片都给吃了。 你也可以返回0。接下来是图片的

查看图片


def __getAllPicUrl(self,pageIndex):
    realurl = self.__Url + "page-" + str(pageIndex) + "#comments"
    pageCode = self.Get(realurl)
    type = sys.getfilesystemencoding()
    pattern = re.compile('<p>.*?<a .*?view_img_link">.*?</a>.*?<img src="(.*?)".*?</p>',re.S)
    items = re.findall(pattern,pageCode.decode("UTF-8").encode(type))
    for item in items:
      print item

  好了,得到了图片地址,接下来就是访问图片地址然后保存图片了:


def __savePics(self,img_addr,folder):
    for item in img_addr:
      filename = item.split('/')[-1]
      print "正在保存图片:" + filename
      with open(filename,'wb') as file:
        img = self.Get(item)
        file.write(img)

  当你觉得信心满满的时候,一定会有一盆冷水浇到你的头上,毕竟程序就是这样,考验你的耐性,打磨你的自信。你测试了一会儿,然后你发现你重启程序后再也无法获取最新页码,你觉得我什么也没动啊为什么会这样。别着急,我们将得到的网页代码打印出来看看:

查看图片

  看到了吧,是服务器感觉你不像浏览器访问的结果把你的ip给屏蔽了。 真是给跪了,辛辛苦苦码一年,屏蔽回到解放前!那么这个如何解决呢,答:换ip 找代理。接下来我们要改一下我们的HttpClient.py 将里面的opener设置下代理服务器。具体代理服务器请自行百度之,关键字:http代理 。 想找到一个合适的代理也不容易 自己ie Internet选项挨个试试,测试下网速。


# -*- coding: utf-8 -*-
import cookielib, urllib, urllib2, Socket
import zlib,Stringio
class HttpClient:
 __cookie = cookielib.Cookiejar()
 __proxy_handler = urllib2.ProxyHandler({"http" : '42.121.6.80:8080'})#设置代理服务器与端口
 __req = urllib2.build_opener(urllib2.HTTPCookieProcessor(__cookie),__proxy_handler)#生成opener
 __req.addheaders = [
  ('Accept', 'application/javascript, **;q=0.8'),
  ('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0; windows NT 6.1; WOW64; Trident/5.0)')
 ]
 urllib2.install_opener(__req)

 def Get(self, url, refer=None):
  try:
   req = urllib2.Request(url)
   req.add_header('Accept-encoding', 'gzip')
   if not (refer is None):
    req.add_header('Referer', refer)
   response = urllib2.urlopen(req, timeout=120)
   html = response.read()
   gzipped = response.headers.get('Content-Encoding')
   if gzipped:
     html = zlib.decompress(html, 16+zlib.MAX_WBITS)
   return html
  except urllib2.HTTPError, e:
   return e.read()
  except socket.timeout, e:
   return ''
  except socket.error, e:
   return ''

 def Post(self, url, data, refer=None):
  try:
   #req = urllib2.Request(url, urllib.urlencode(data))
   req = urllib2.Request(url,data)
   if not (refer is None):
    req.add_header('Referer', refer)
   return urllib2.urlopen(req, timeout=120).read()
  except urllib2.HTTPError, e:
   return e.read()
  except socket.timeout, e:
   return ''
  except socket.error, e:
   return ''

 def Download(self, url, file):
  output = open(file, 'wb')
  output.write(urllib2.urlopen(url).read())
  output.close()

# def urlencode(self, data):
#  return urllib.quote(data)

 def getCookie(self, key):
  for c in self.__cookie:
   if c.name == key:
    return c.value
  return ''

 def setCookie(self, key, val, domain):
  ck = cookielib.Cookie(version=0, name=key, value=val, port=None, port_specified=False, domain=domain, domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)
  self.__cookie.set_cookie(ck)
#self.__cookie.clear() clean cookie
# vim : tabstop=2 shiftwidth=2 softtabstop=2 expandtab

HttpClient

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from HttpClient import HttpClient
import sys,re,os
class JianDan(HttpClient):
  def __init__(self):
    self.__pageIndex = 1500 #之前的图片被煎蛋吞了
    self.__Url = "http://jandan.net/ooxx/"
    self.__floder = "jiandan"
  def __getAllPicUrl(self,pageIndex):
    realurl = self.__Url + "page-" + str(pageIndex) + "#comments"
    pageCode = self.Get(realurl)
    type = sys.getfilesystemencoding()
    pattern = re.compile('<p>.*?<a .*?view_img_link">.*?</a>.*?<img src="(.*?)".*?</p>',re.S)
    items = re.findall(pattern,pageCode.decode("UTF-8").encode(type))
    for item in items:
      print item
    self.__savePics(items,self.__floder)

  def __savePics(self,img_addr,folder):
    for item in img_addr:
      filename = item.split('/')[-1]
      print "正在保存图片:" + filename
      with open(filename,'wb') as file:
        img = self.Get(item)
        file.write(img)

  def __getNewPage(self):
    pageCode = self.Get(self.__Url)
    type = sys.getfilesystemencoding()
    pattern = re.compile(r'<div .*?cp-pagenavi">.*?<span .*?current-comment-page">[(.*?)]</span>',re.S)
    newPage = re.search(pattern,pageCode.decode("UTF-8").encode(type))
    print pageCode.decode("UTF-8").encode(type)
    if newPage != None:
      return newPage.group(1)
    return 1500

  def start(self):
    isExists=os.path.exists(self.__floder)#检测是否存在目录
    print isExists
    if not isExists:
      os.mkdir(self.__floder)
    os.chdir(self.__floder)
    page = int(self.__getNewPage())
    for i in range(self.__pageIndex,page):
      self.__getAllPicUrl(i)

if __name__ == '__main__':
  jd = JianDan()
  jd.start()

JianDan

--结束END--

本文标题: Python制作爬虫抓取美女图

本文链接: https://lsjlt.com/news/15477.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python制作爬虫抓取美女图
      作为一个新世纪有思想有文化有道德时刻准备着的潘磕星嗄辏谙衷谡庋桓錾缁嶂校奶畚掖舐サ种拼蟀俣鹊那疤嵯拢皇露仙贤涔Y看看斗鱼翻翻美女图片那是必不可少的,可是美图虽多翻页费劲!今天我们就搞个爬虫把美图都给扒下...
    99+
    2022-06-04
    爬虫 美女图 Python
  • python制作花瓣网美女图片爬虫
    花瓣图片的加载使用了延迟加载的技术,源代码只能下载20多张图片,修改后基本能下载所有的了,只是速度有点慢,后面再优化下 import urllib, urllib2, re, sys, os,reque...
    99+
    2022-06-04
    爬虫 花瓣 美女
  • python 抓取美女图片
    之前见过别人写的抓取图片的python脚本,自己之前用正则写过,最近看到beautifulsoup 所以拿来练练手# -*- coding:utf8 -*- from bs4 import BeautifulSoup import os, ...
    99+
    2023-01-31
    美女 图片 python
  • python爬取网站美女图片
    今天周五,项目刚刚上线完,有些时间,闲着无聊,继续复习爬虫,这次打算爬取网站的美女图片。得先找到目标,然后目标网站还不会反爬虫,因为自己只是小白,好了开始。寻找目标,发现了目标,哈哈 http://www.meizitu.com 里面图片按...
    99+
    2023-01-31
    美女 图片 网站
  • Python爬虫抓取csdn博客
            昨天晚上为了下载保存某位csdn大牛的全部博文,写了一个爬虫来自动抓取文章并保存到txt文本,当然也可以 保存到html网页中。这样就可以不用Ctrl+C 和Ctrl+V了,非常方便,抓取别的网站也是大同小异。为了解析抓取的...
    99+
    2023-01-31
    爬虫 博客 Python
  • python爬虫怎么抓取html
    使用 python 爬虫抓取 html 代码的步骤:安装 requests 库;导入 requests 模块;使用 get() 方法获取 html 代码;解析 html 代码;提取所需数...
    99+
    2024-05-22
    python
  • python制作爬虫并将抓取结果保存到excel中
    学习Python也有一段时间了,各种理论知识大体上也算略知一二了,今天就进入实战演练:通过Python来编写一个拉勾网薪资调查的小爬虫。 第一步:分析网站的请求过程 我们在查看拉勾网上的招聘信息的时候,搜索...
    99+
    2022-06-04
    爬虫 并将 python
  • Python爬虫之爬取2020女团选秀数据
    目录一、先看结果1.1创造营2020撑腰榜前三甲1.2青春有你2当前官方榜前三甲1.3Face++男女视角颜值最高1.3.1女性视角颜值第一名1.3.2男性视角颜值第一名1.4小姐姐...
    99+
    2024-04-02
  • python制作最美应用的爬虫
    安卓最美应用页面爬虫,爬虫很简单,设计的东西到挺多的 文件操作 正则表达式 字符串替换等等 import requests import re url = "http://zuimeia.com" r ...
    99+
    2022-06-04
    爬虫 最美 python
  • 教你如何用Python爬虫获取今日头条上面三千美女图
    想问大家一个问题啊,大家学习Python爬虫的动力是什么呀?下面是我们有些同学的回答:1 .Python爬虫学好了,我可以找一个高薪的工作。2 .我学习编程希望能够为社会做贡献(手动滑稽)3 .为了姑娘!(很直白的回答哈!).....总结了...
    99+
    2023-06-02
  • Python爬虫:python获取各种街拍美图
    抓包...
    99+
    2023-06-02
  • Python爬虫抓取技术的门道
    web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展。然而,正所谓成也萧何败也萧何,开放的特性、搜索引擎以及简单易学的html、css技术使得web成为了互联网领域里最为流行和成熟的信息传播媒介;但如今作为...
    99+
    2023-06-02
  • 使用Python的Scrapy框架十分钟爬取美女图
    简介 scrapy 是一个 python 下面功能丰富、使用快捷方便的爬虫框架。用 scrapy 可以快速的开发一个简单的爬虫,官方给出的一个简单例子足以证明其强大: 快速开发 下面开始10分钟倒计时: ...
    99+
    2022-06-04
    十分钟 美女图 框架
  • Python如何爬取全网美女写真
    这期内容当中小编将会给大家带来有关Python如何爬取全网美女写真,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言深夜放福利,老司机带你放飞自我,利用Python这个强大的胶水语言,帮助你实现梦想,可以...
    99+
    2023-06-02
  • 怎么用Python爬虫获取网址美图
    本篇内容介绍了“怎么用Python爬虫获取网址美图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python学习教程之爬虫:爬取街拍美图 抓...
    99+
    2023-06-02
  • Python爬虫抓取时怎么更换ip
    这篇文章将为大家详细讲解有关Python爬虫抓取时怎么更换ip,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,...
    99+
    2023-06-15
  • 如何使用python爬虫抓取弹幕
    这篇文章主要讲解了“如何使用python爬虫抓取弹幕”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用python爬虫抓取弹幕”吧!一、爬虫是什么?百度百科这样说:自动获取网页内容的程序...
    99+
    2023-06-29
  • Python 简单爬虫抓取糗事百科
        该爬虫主要实现的功能是抓取糗事百科里面的一些段子。    urllib2可以用urllib2.openurl中设置Request参数,来修改Header头。如果你访问一个网站,想更改User Agent(可以伪装你的浏览器),你就要...
    99+
    2023-01-31
    爬虫 糗事 百科
  • 如何用Python爬虫抓取代理IP
    本篇文章为大家展示了如何用Python爬虫抓取代理IP,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。不知道大家在访问网站的时候有没有遇到过这样的状况就是被访问的网站会给出一个提示,提示的显示是“访问...
    99+
    2023-06-02
  • python爬虫如何爬取图片
    这篇文章主要介绍了python爬虫如何爬取图片,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pytho...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作