python爬虫爬取图片

爬取 http://www.xiaohuar.com/ 美女校花 图片的爬虫

# -*- coding:utf-8 -*-

import os
import requests
# from PIL import Image
from lxml import etree

class Spider(object):
    """ crawl image """
    def __init__(self):
        self.index = 0
        self.url = "http://www.xiaohuar.com"
        self.proxies = {"http": "http://172.17.18.80:8080", "https": "https://172.17.18.80:8080"}
        pass

    def download_image(self, image_url):
        real_url = self.url + image_url
        print "downloading the {0} image".format(self.index)
        with open("{0}.jpg".format(self.index), 'wb') as f:
            self.index += 1
            f.write(requests.get(real_url, proxies=self.proxies).content)
            pass
        pass

    def start_crawl(self):
        start_url = "http://www.xiaohuar.com/hua/"
        r = requests.get(start_url, proxies=self.proxies)
        if r.status_code == 200:
            temp = r.content.decode("gbk")
            html = etree.HTML(temp)
            links = html.xpath('//div[@class="item_t"]//img/@src')
            map(self.download_image, links)
            # next_page_url = html.xpath('//div[@class="page_num"]//a/text()')
            # print next_page_url[-1]
            # print next_page_url[-2]
            # print next_page_url[-3]
            next_page_url = html.xpath(u'//div[@class="page_num"]//a[contains(text(),"下一页")]/@href')
            page_num = 2
            while next_page_url:
                print "download {0} page images".format(page_num)
                r_next = requests.get(next_page_url[0], proxies=self.proxies)
                if r_next.status_code == 200:
                    html = etree.HTML(r_next.content.decode("gbk"))
                    links = html.xpath('//div[@class="item_t"]//img/@src')
                    map(self.download_image, links)
                    try:
                        next_page_url = html.xpath(u'//div[@class="page_num"]//a[contains(text(),"下一页")]/@href')
                    except BaseException as e:
                        next_page_url = None
                        # print e
                    page_num += 1
                    pass
                else:
                    print "response status code : {0}".format(r_next.status_code)
                pass
        else:
            print "response status code : {0}".format(r.status_code)
        pass

if __name__ == "__main__":
    t = Spider()
    t.start_crawl()
    pause = raw_input("press any key to continue")
    pass
时间: 2024-08-01 19:13:00

python爬虫爬取图片的相关文章

[python爬虫] 爬取图片无法打开或已损坏的简单探讨

        本文主要针对python使用urlretrieve或urlopen下载百度.搜狗.googto(谷歌镜像)等图片时,出现"无法打开图片或已损坏"的问题,作者对它进行简单的探讨.同时,作者将进一步帮你巩固selenium自动化操作和urllib库等知识.         感谢朋友"露为霜"的帮助!希望以后能实现强大的图片爬虫代码~ 一. 引入Selenium自动爬取百度图片         下面这部分Selenium代码的主要功能是:        

python爬虫抓取图片的疑问和原理

问题描述 python爬虫抓取图片的疑问和原理 我想问一下 最简单的抓取图片保存下来的原理 如下面这段代码 response=urllib.request.urlopen("http://ww3.sinaimg.cn/mw600/006h1GB2jw1f1hbjv1eiwj30zk0qo44l.jpg") html=response.read() with open("ddd.JPG","wb") as f f.write(html) 这里htm

计算机编程-在python爬虫爬网站的时候返回Access denied怎么办

问题描述 在python爬虫爬网站的时候返回Access denied怎么办 #coding=utf-8 import urllib import re def getHtml(url): page = urllib.urlopen(url) html = page.read() return html html = getHtml("http://www.xxx.com/ ") f = file('html.txt','w') f.write(html) f.close() 返回的A

Python爬虫爬取美剧网站

一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间.之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前一样同步更新了.但是,作为一个宅diao的我又怎甘心没剧追呢,所以网上随便查了一下就找到一个能用迅雷下载的美剧下载网站[天天美剧],各种资源随便下载,最近迷上的BBC的高清纪录片,大自然美得不要不要的. 虽说找到了资源网站可以下载了,但是每次都要打开浏览器,输入网址,找到该美剧,然后点击链接才能下载.时间长了就觉得过程好繁琐,而且有时候网

Python爬虫爬取知乎小结

最近学习了一点网络爬虫,并实现了使用Python来爬取知乎的一些功能,这里做一个小的总结.网络爬虫是指通过一定的规则自动的从网上抓取一些信息的程序或脚本.我们知道机器学习和数据挖掘等都是从大量的数据出发,找到一些有价值有规律的东西,而爬虫则可以帮助我们解决获取数据难的问题,因此网络爬虫是我们应该掌握的一个技巧. Python有很多开源工具包供我们使用,我这里使用了requests.BeautifulSoup4.json等包.requests模块帮助我们实现http请求,bs4模块和json模块帮

Python爬虫爬取百度贴吧多线程版

XPath提取内容 //定位根节点 / 往下层寻找 提取文本内容:/text() 提取属性内容 : /@XXXX 常规匹配 #-*-coding:utf8-*- from lxml import etree html = ''' <!DOCTYPE html> <html> <head lang="en">     <meta charset="UTF-8">     <title>测试-常规用法</

使用Python多线程爬虫爬取电影天堂资源_python

最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. 先来简单介绍一下,网络爬虫的基本实现原理吧.一个爬虫首先要给它一个起点,所以需要精心选取一些URL作为起点,然后我们的爬虫从这些起点出发,抓取并解析所抓取到的页面,将所需要的信息提取出来,同时获得的新的URL插入到队列中作为下一次爬取的起点.这样不断地循环,一直到获得你想得到的所有的信息爬虫的任务

python制作爬虫爬取京东商品评论教程_python

本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D共18个尺寸,以及超过700条的购买评论. 京东商品评论信息是由JS动态加载的,所以直接抓取商品详情页的URL并不能获得商品评论的信息.因此我们需要先找到存放商品评论信息的文件.这里我们使用Chrome浏览器里的开发者工具进行查找. 具体方法是在商品详情页点击鼠标右键,选择检查,在弹出的开发者工具界

[python爬虫] Selenium定向爬取海量精美图片及搜索引擎杂谈

        我自认为这是自己写过博客中一篇比较优秀的文章,同时也是在深夜凌晨2点满怀着激情和愉悦之心完成的.首先通过这篇文章,你能学到以下几点:        1.可以了解Python简单爬取图片的一些思路和方法         2.学习Selenium自动.测试分析动态网页和正则表达式的区别和共同点         3.了解作者最近学习得比较多的搜索引擎和知识图谱的整体框架         4.同时作者最近找工作,里面的一些杂谈和建议也许对即将成为应届生的你有所帮助         5.当