Python爬虫 —— 抓取美女图片

代码如下:

 1 #coding:utf-8
 2 # import datetime
 3 import requests
 4 import os
 5 import sys
 6 from lxml import etree
 7 import codecs
 8
 9 class Spider:
10     def __init__(self):
11         self.headers = {}
12         self.headers[‘User_Agent‘] = ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0‘
13         self.headers[‘Referer‘] = ‘http://www.mzitu.com/all/‘
14
15     def crawl(self, root_url):
16         html_text = requests.get(root_url,headers=self.headers).text
17         html_tree = etree.HTML(html_text)
18         groups = html_tree.xpath("//div[@class=‘main-content‘]//ul[@class=‘archives‘]//a")
19         count = 0
20         print "开始抓取:"
21         for group in groups:
22             title = group.text
23             groupUrl = group.get(‘href‘)
24             print "正在抓取组图:"+title
25             dirpath = self.makDir(title)   #获取标题,并以标题为名字创建文件夹
26             self.getGroup(groupUrl,dirpath)    #
27             count = count+1
28             if count>=5:
29                 print "抓取完成……"
30                 os._exit(0)
31
32     def makDir(self,dirname):
33         dirpath = os.path.join(u‘E:\学习资料‘,dirname)
34         if not os.path.exists(dirpath):
35             os.makedirs(dirpath)
36         return dirpath
37
38     def getGroup(self,groupUrl,dirpath):
39         self.headers[‘Referer‘] = groupUrl
40         html_text = requests.get(groupUrl, headers=self.headers).text
41         html_tree = etree.HTML(html_text)
42         maxPage = html_tree.xpath("//div[@class=‘pagenavi‘]//span")[-2].text    #获取改组图的张数
43         for page in range(1,int(maxPage)+1):    #获取每一张图的所在页面
44             pageUrl = groupUrl + ‘/‘ + str(page)    #拼接页面url
45             self.getPage(pageUrl,page,dirpath)   #访问该页面
46
47     def getPage(self, pageUrl,page,dirpath):
48         self.headers[‘Referer‘] = pageUrl
49         page_text = requests.get(pageUrl, headers=self.headers).text  #请求该图所在的页面
50         page_tree = etree.HTML(page_text)
51         imageurl = page_tree.xpath("//div[@class=‘main-image‘]//img")[0].get(‘src‘)    #获取图片url
52         image = requests.get(imageurl, headers=self.headers).content                    #请求获取图片
53         self.saveImage(image,page,dirpath)
54
55     def saveImage(self,image,page,dirpath):
56         imagepath = os.path.join(dirpath, str(page) + u‘.jpg‘)
57         file = codecs.open(imagepath, ‘wb‘)
58         file.write(image)
59         file.close()
60
61 if __name__ == ‘__main__‘:
62     reload(sys)
63     sys.setdefaultencoding(‘utf-8‘)
64     Mzitu = Spider()
65     Mzitu.crawl(‘http://www.mzitu.com/all‘)

原文地址:https://www.cnblogs.com/DOLFAMINGO/p/9166435.html

时间: 2024-10-09 00:51:54

Python爬虫 —— 抓取美女图片的相关文章

python爬虫爬取美女图片

python 爬虫爬取美女图片 #coding=utf-8 import urllib import re import os import time import threading def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImgUrl(html,src): srcre = re.compile(src) srclist = re.findall(srcre,html)

Python爬虫抓取网页图片

本文通过python 来实现这样一个简单的爬虫功能,把我们想要的图片爬取到本地. 下面就看看如何使用python来实现这样一个功能. # -*- coding: utf-8 -*- import urllib import re import time import os #显示下载进度 def schedule(a,b,c): ''''' a:已经下载的数据块 b:数据块的大小 c:远程文件的大小 ''' per = 100.0 * a * b / c if per > 100 : per =

python 爬虫抓取心得

quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'http://music.baidu.com/search?key='+query response = urllib.urlopen(url) text = response.read()

python 爬虫抓取心得分享

/** author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/112157956201311821444664/ **/    0x1.urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'h

Python3简单爬虫抓取网页图片

现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2),所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到大家,并希望大家批评指正. 1 import urllib.request 2 import re 3 import os 4 import urllib 5 #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 6 def getHtml(url): 7 page = urllib.r

python爬虫抓取站长之家IP库,仅供练习用!

python爬虫抓取站长之家IP库,单线程的,仅供练习,IP库数据有43亿条,如果按此种方法抓取至少得数年,所以谨以此作为练手,新手代码很糙,请大家见谅. #!/usr/bin/python #coding=UTF-8 import urllib2 import re import os import csv import codecs user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers = { 'User-

python爬虫抓取哈尔滨天气信息

python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip install requests:pip install BeautifulSoup4) 代码:(亲测可以正确执行) 1 # coding:utf-8 2 """ 3 总结一下,从网页上抓取内容大致分3步: 4 1.模拟浏览器访问,获取html源代码 5 2.通过正则匹配,获取指定

Python爬虫抓取技术的门道

web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单易学的html.css技术使得web成为了互联网领域里最为流行和成熟的信息传播媒介:但如今作为商业化软件,web这个平台上的内容信息的版权却毫无保证,因为相比软件客户端而言,你的网页中的内容可以被很低成本.很低的技术门槛实现出的一些抓取程序获取到,这也就是这一系列文章将要探讨的话题-- 网络爬虫 . 有很多人认为web应当始终遵循开放的精神,呈现在页面

Python爬虫抓取糗百的图片,并存储在本地文件夹

思路: 1.观察网页,找到img标签 2.通过requests和BS库来提取网页中的img标签 3.抓取img标签后,再把里面的src给提取出来,接下来就可以下载图片了 4.通过urllib的urllib.urlretrieve来下载图片并且放进文件夹里面(第一之前的准备工作就是获取当前路径然后新建一个文件夹) 5.如果有多张图片,不断的重复3-4 由于爬虫写得少,通过自己的调试,终于写了出来了 下面直接上代码: 1 #coding = 'utf-8' 2 import requests 3 f