Python 爬虫 七夕福利
祝大家七夕愉快
妹子图
import requests
from lxml import etree
import os
def headers(refere):#图片的下载可能和头部的referer有关,所以将referer设为变换值,以躲避反扒
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
'Refere': '{}'.format(refere)}
return headers
def Tuji(pag):#找图集
fullurl = 'http://www.mzitu.com/page/{}/'.format(pag)
shouye_html_text = requests.get(fullurl).text
shouye_ele = etree.HTML(shouye_html_text)
tj_list = shouye_ele.xpath('//*[@id="pins"]/li/a/@href')#找每页的图集url
Tuji_url_list = []
for tj_url in tj_list:
Tuji_url_list.append(tj_url)
return Tuji_url_list
def gettuji_info(tj_url_list):#图集的url列表 收集图集的相关信息
for tj_url_1 in tj_url_list: #tj_url_1 --- > http://www.mzitu.com/146823
tj_html_text = requests.get(tj_url_1, headers=headers(tj_url_1)).text
tj_ele = etree.HTML(tj_html_text)
img_title = tj_ele.xpath('//h2[@class="main-title"]/text()')[0] # 图集名称
max_pag_list = int(tj_ele.xpath('/html/body/div[2]/div[1]/div[4]/a[5]/span/text()')[0]) # 找最大页数
if os.path.exists(img_title):
pass
else:
os.mkdir(img_title)
for i in range(1, int(max_pag_list + 1)):
tj_url_2 = tj_url_1 + '/'+str(i) #tj_url_2 ---> http://www.mzitu.com/146823 + pag
tj_html = requests.get(tj_url_2, headers=headers(tj_url_1))
tj_html_text = tj_html.text
tj_ele = etree.HTML(tj_html_text)
img_url = tj_ele.xpath('//div[@class="main-image"]/p/a/img/@src')[0] # 从不同的tj_url_2中找图片的url
print('正在下载'+img_title+'第'+str(i)+'张')
with open(img_title+'/'+str(i)+'.jpg', "wb+") as jpg:
jpg.write(requests.get(img_url, headers=headers(tj_url_2)).content)
jpg.close()
if __name__ == '__main__':
pags = int(input('你想搞几页的嘿嘿?'))
for pag in range(1,pags+1):
gettuji_info(Tuji(pag))
Python 爬虫 七夕福利的更多相关文章
- Python爬虫初学(二)—— 爬百度贴吧
Python爬虫初学(二)-- 爬百度贴吧 昨天初步接触了爬虫,实现了爬取网络段子并逐条阅读等功能,详见Python爬虫初学(一). 今天准备对百度贴吧下手了,嘿嘿.依然是跟着这个博客学习的,这次仿照 ...
- Python 爬虫入门(二)——爬取妹子图
Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...
- 专业的“python爬虫工程师”需要学习哪些知识?
学到哪种程度 暂且把目标定位初级爬虫工程师,简单列一下吧: (必要部分) 熟悉多线程编程.网络编程.HTTP协议相关 开发过完整爬虫项目(最好有全站爬虫经验,这个下面会说到) 反爬相关,cookie. ...
- Python爬虫实战四之抓取淘宝MM照片
原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...
- Python 爬虫入门之爬取妹子图
Python 爬虫入门之爬取妹子图 来源:李英杰 链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...
- Python爬虫个人记录(三)爬取妹子图
这此教程可能会比较简洁,具体细节可参考我的第一篇教程: Python爬虫个人记录(一)豆瓣250 Python爬虫个人记录(二)fishc爬虫 一.目的分析 获取煎蛋妹子图并下载 http://jan ...
- 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块
孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...
- (转)python爬虫----(scrapy框架提高(1),自定义Request爬取)
摘要 之前一直使用默认的parse入口,以及SgmlLinkExtractor自动抓取url.但是一般使用的时候都是需要自己写具体的url抓取函数的. python 爬虫 scrapy scrapy提 ...
- Python爬虫+颜值打分,5000+图片找到你的Mrs. Right
一见钟情钟的不是情,是脸 日久生情生的不是脸,是情 项目简介 本项目利用Python爬虫和百度人脸识别API,针对简书交友专栏,爬取用户照片(侵删),并进行打分. 本项目包括以下内容: 图片爬 ...
随机推荐
- windows7 端口查看以及杀死进程释放端口
1.调出命令窗口:开始---->运行---->cmd,或者是window+R组合键 2.输入命令:netstat -ano,列出所有端口的情况.在列表中我们观察被占用的端口,比如是4300 ...
- springMVC+mybatis事务管理总结
1.spring,mybatis事务管理配置与@Transactional注解使用: 概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性.Spring Framewo ...
- 如何使用Flashfxp上传下载文件
一.首先您本地电脑需要安装flashfxp软件,您可以通过百度搜索下载. 二.我们打开flashfxp,然后在右上角点击“会话”,再点击“快速连接”,如下图. 三.弹出“如下图”窗口.请输入FTP连接 ...
- pg 关于不插入重复字段的方法
首先在表的某列加入唯一约束 alter table language_pms add CONSTRAINT language_pms_unique unique(xml); insert into l ...
- python 浮点运算 及 小数点精确位数
>>> 1050 / 3133>>> 1050 / float(31)33.87096774193548 # 分子或者分母用 ...
- maven工程src/main/java目录无法创建问题
在项目上右键选择properties,然后点击Javabuild path,在Librarys下,编辑JRE System Library,选择 workspace default jre 即可
- json查看器
jsonview: http://www.bejson.com/jsonviewernew/
- Join Resig's “Simple JavaScript Inheritance ”
======================Enein翻译========================= John Resig 写了一篇关于 JavaScript 里类似其它语 ...
- luogu P2617 Dynamic Rankings(分块,n <= 1e4)
嘟嘟嘟 带修改区间第k大. 然而某谷把数据扩大到了1e5,所以用分块现在只能得50分. 分块怎么做呢?很暴力的. 基本思想还是块内有序,块外暴力统计. 对于修改,直接重排修改的数所在块,时间复杂度O( ...
- 理解JavaScript闭包(closure)
闭包听了很多次了,可是到底有那些具体的用法还是不清楚,看了<JavaScript高级程序设计>,有点明白了. 1.闭包的定义: 闭包其实就是一个函数,而这个函数有点特别,它能够访问另一个函 ...