首页 编程教程正文

mzitu爬虫,小福利。

piaodoo 编程教程 2020-02-22 22:12:46 15708 0 python教程

本文来源吾爱破解论坛

刚学习python没多久,请多多指教。
用了四个模块,具体看代码4-7行,都是常用模块!
内容是爬取https://www.mzitu.com/ 的妹子图片
只写了一组套图的爬取

有两行代码需要自行填写,分别是:
第25行的url   需要自行填写组套图的网址;就是自己点开一个喜欢的图片的网址,例如:https://www.mzitu.com/215383
第60行的文件路径名   我是放在了桌面的img文件夹,img文件夹需要自行创建

好了,不废话了,下面放上代码
[Python] 纯文本查看 复制代码

#https://www.mzitu.com/ 妹子图
# -*- coding: UTF-8 -*-

import requests
from lxml import etree
import time
import random

UserAgent=['Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
    		'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
    		'Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50',
    		'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
    		'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)',
    		'Mozilla/5.0 (Windows NT 10.0; WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
     		 ]

Usera=random.choice(UserAgent) #随机一个UserAgent浏览器标识

#构造请求头信息,经测试mzitu网站光构造一个UserAgent不行
headers={'User-Agent':Usera,
           'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
           'Accept-Encoding': 'gzip',
           "Referer": "https://www.mzitu.com/all"}

url="https://www.mzitu.com/215383"    #具体网址需要自己填写

#套图一共多少页,读取endPage页码数字
data=requests.get(url,headers=headers).text
html=etree.HTML(data)
result=html.xpath('//div//div[@class="pagenavi"]/a/span')   
endPage=result[-2].text    #最后一页页码,str格式

class Spider(object):
	def __init__(self):
		self.url=url
		self.endPage=int(endPage)
		self.header=headers
		self.fileName=1
		
	#构造url:找到一共多少页,读取endPage页码数字
	def mztSpider(self):
		for page in range(1,self.endPage+1):
			murl=url+"/"+str(page)
			self.loadImages(murl)
	
	#通过每一页详情页,顺便获得图片的链接
	def loadImages(self,link):
		data=requests.get(link,headers=self.header).text
		html=etree.HTML(data)
		links=html.xpath('//div//div[@class="main-image"]/p/a//img/@src')
		time.sleep(0.1)   #经测试如果不用时间间隔,容易中间断掉
		for imageslink in links:
			self.writeImages(imageslink)

	#通过图片所在链接,爬取图片并保存到本地
	def writeImages(self,imageslink):
		print("正在存储图片:",self.fileName,"...")
		image=requests.get(imageslink,headers=self.header).content
		#保存图片到本地
		file=open(r"C:\Users\XD\Desktop\img\\"+str(self.fileName)+".jpg","wb") #img是文件夹名字,具体可以自行设置
		file.write(image)
		file.close()
		self.fileName+=1

if __name__ == '__main__':
	print("该组图共有"+endPage+"张图片")
	start=Spider()
	start.mztSpider()
	print("下载完成!")



本帖被以下淘专辑推荐: · 自用|主题: 202, 订阅: 8

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7815.html

搜索