专栏名称: python
隔天更新python文章,我希望用我的努力换来劳动的成果帮助更多的人掌握一门技术,因此我要更加努力。
目录
相关文章推荐
Python爱好者社区  ·  节后第一个私活,赚了3w ·  2 天前  
Python爱好者社区  ·  python接私活,yyds ·  22 小时前  
Python开发者  ·  “李飞飞团队50 美元炼出 ... ·  3 天前  
Python开发者  ·  国产 DeepSeek V3 ... ·  4 天前  
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  4 天前  
51好读  ›  专栏  ›  python

开车开车!Python爬取妹子图

python  · 公众号  · Python  · 2017-12-27 14:05

正文

环境:Python3.6

模块:requests、beautifulsoup4

步骤

1.获取网页源码

用浏览器的F12可以看到网页的源码,但我们现在要用python这样做。

如果没问题的话结果会是这样类似

这些就是网页的源码了。


2.寻找所需信息

切换浏览器,右键‘查看网页源代码’,可以发现有很多这样的信息

< li > < a href = "http://www.mzitu.com/89334" target = "_blank" > < img width = '236' height = '354' class = 'lazy' alt = '我是标题我是标题我是标题我是标

那么我们只需要提取这些东西就可以了…but:我写不出这么复杂的正则!!!没关系,我们的神器BeautifulSoup要上场了!

我们的步骤是:①将获取的源码转换为BeautifulSoup对象②搜索需要的数据

这样就找到了当页所有套图的标题

3.进入下载

点进一个套图之后,发现他是每个页面显示一个图片。

比如 http://www.mzitu.com/26685 是某个套图的第一页,后面的页数都是再后面跟/和数字 http://www.mzitu.com/26685/2 (第二页),那么很简单了,我们只需要找到他一共多少页,然后用循环组成页数就OK了。

好了,那么我们接下来就是进行寻找图片地址并且保存了,右键妹纸图片,“检查”可以发现

< img src = "http://i.meizitu.net/2014/07/20140711w11.jpg" alt = "Beautyleg 美腿写真 No.997 Dora" >


那么这就是图片的具体地址了,那么我们的目的就要达成,保存它。


不出意外你脚本所在的地方会有12张图片

4.批量下载

上面讲了如何下载一个套图,其实所有的套图下载只是加上两重循环。成品如下:

#coding=utf-8

import requests

from bs4 import BeautifulSoup

import os

import sys

'''

#安卓端需要此语句

reload(sys)

sys.setdefaultencoding('utf-8')

'''


if(os.name == 'nt'):

print(u'你正在使用win平台')

else:

print(u'你正在使用linux平台')


header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36'}

#http请求头

all_url = 'http://www.mzitu.com'

start_html = requests.get(all_url,headers = header)


#保存地址

path = 'D:/mzitu/'


#找寻最大页数

soup = BeautifulSoup(start_html.text,"html.parser")

page = soup.find_all('a',class_='page-numbers')

max_page = page[-2].text



same_url = 'http://www.mzitu.com/page/'

for n in range(1,int(max_page)+1):

ul = same_url+str(n)

start_html = requests.get(ul, headers=header)

soup = BeautifulSoup(start_html.text,"html.parser")

all_a = soup.find('div',class_='postlist').find_all('a',target='_blank')

for a in all_a:

title = a.get_text() #提取文本







请到「今天看啥」查看全文