python 爬取妹子图

作为一个python还没入门的小白,搞懂这段代码实在是很不容易,还要去学html的知识(#黑脸)

因此我加上了注释,比较好读懂点

#coding=utf-8
import time
import requests
from bs4 import BeautifulSoup
import os
import sys

if(os.name == ‘nt‘):
        print(u‘你正在使用win平台‘)
else:
        print(u‘你正在使用linux平台‘)

header = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0‘}
#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")    #定义为beautifulsoup类parser
page = soup.find_all(‘a‘,class_=‘page-numbers‘) #page为一个列表,找到标签为a的,属性class为‘page-numbers‘的标签
max_page = page[-2].text #观察最大页数在-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")#标签的寻找find是一对一对的然后用text取其中内容
    all_a = soup.find(‘div‘,class_=‘postlist‘).find_all(‘a‘,target=‘_blank‘)#在find  div的大类下找到所有标签a且a标签中target为blank的标签(因为有多个a类标签,需要把没用的排除掉)
    for a in all_a:    #all_a一共找到两个部分,第一个部分是空的,第二部分才能提取得到title
        title = a.text #提取文本内容就是在<>尖括号以外的信息
        if(title != ‘‘):
            print("准备扒取:"+title)

            #win不能创建带?的目录  如果目录中含有?将其替换为‘‘
            if(os.path.exists(path+title.strip().replace(‘?‘,‘‘))):#如果目录存在(exist)返回1,flag = 1
                flag=1
            else:
                os.makedirs(path+title.strip().replace(‘?‘,‘‘))
                flag=0
            os.chdir(path + title.strip().replace(‘?‘,‘‘))#改变当前工作目录到指定路径
            href = a[‘href‘]#图片地址
            html = requests.get(href,headers = header)
            mess = BeautifulSoup(html.text,"html.parser")
            pic_max = mess.find_all(‘span‘)
            pic_max = pic_max[10].text #最大页数
            if(flag == 1 and len(os.listdir(path+title.strip().replace(‘?‘,‘‘))) >= int(pic_max)):
                print(‘已经保存完毕,跳过‘)
                continue
            for num in range(1,int(pic_max)+1):
                time.sleep(1)#抓慢一点,上次爬的太快ip被封了
                pic = href+‘/‘+str(num)#图片所在页的地址
                html = requests.get(pic,headers = header)
                mess = BeautifulSoup(html.text,"html.parser")
                pic_url = mess.find(‘img‘,alt = title)#找到标签为img
                html = requests.get(pic_url[‘src‘],headers = header)#这里找到的才是真正图片的地址
                file_name = pic_url[‘src‘].split(r‘/‘)[-1]#文件名为地址分割后的最后一个字符串
                f = open(file_name,‘wb‘)
                f.write(html.content)#content是类函数,在这里就是地址html所表示的图片
                f.close()
            print(‘完成‘)
    print(‘第‘,n,‘页完成‘)
时间: 2024-10-19 08:17:03

python 爬取妹子图的相关文章

Python 爬虫入门(二)——爬取妹子图

Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob/master/%E7%88%AC%E8%99%AB%E9%9B%86%E5%90%88/meizitu.py 公众号:[智能制造专栏].欢迎关注,分享智能制造与编程那些事. 爬虫成果 当你运行代码后,文件夹就会越来越多,如果爬完的话会有2000多个文件夹,20000多张图片.不过会很耗时间,可以在

Python 爬虫入门之爬取妹子图

Python 爬虫入门之爬取妹子图 来源:李英杰  链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob/master/%E7%88%AC%E8%99%AB%E9%9B%86%E5%90%88/meizitu.py 爬虫成果 当你运行代码后,文件夹就会越来越多,如果爬完的话会有2

Python又来爬取妹子图啦,一个T的硬盘都不够用

淘女郎爬虫,可动态抓取淘女郎的信息和照片. 需要额外安装的第三方库 requests pip install requests pymongo pip install pymongo 学习Python过程中会遇到很多问题,你可以到我们的 python学习交流群[七 三 五,九 三 四,八 四 一],基础,进阶.从企业招聘人才需求 到怎么学习python,和学习什么内容都有免费系统分享,让你无论是自学还是找相应的培训都能让你少走弯路.希望可以帮助你快速了解Python,学习python 模块功能

爬取妹子图

这是之前写的一个简单爬取妹纸图的爬虫,下面是源代码: # -*- coding: utf-8 -*- import requests,time,urllib.request,os from multiprocessing import Processfrom lxml import etree #os.chdir("meizhu")切换工作目录print (os.getcwd())#查看当前工作目录 headers = {"User-Agent" : "M

使用request+Beautiful爬取妹子图

一.request安装 pip install requests request使用示例 import requests response = requests.get('https://www.mzitu.com/') # get()方法发送请求,获取HTML网页 response.status_code # 返回状态码 response.text #以文本格式返回网页内容 response.content # 以二进制形式返回 二.BeautifulSoup库 BeautifulSoup是P

爬取妹子图(requests + BeautifulSoup)

---恢复内容开始--- 刚刚入门爬虫,今天先对于单个图集进行爬取,过几天再进行翻页爬取. 使用requests库和BeautifulSoup库 目标网站:妹子图 今天是对于单个图集的爬取,就选择一个进行爬取,我选择的链接为:http://www.mzitu.com/123114 首先网站的分析,该网站有一定的反爬虫策略,所以应对就是加入headers(目前是小白,目前不知道具体为毛这样做) Hostreferer = { 'User-Agent':'Mozilla/4.0 (compatibl

aiohttp aiofiles asyncio异步爬取妹子图

import aiohttp import asyncio import aiofiles import async_timeout from bs4 import BeautifulSoup import time import os async def aitaotu(sem, urllist):     headers = {         'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/web

使用python爬取csdn博客访问量

最近学习了python和爬虫,想写一个程序练练手,所以我就想到了大家都比较关心的自己的博客访问量,使用python来获取自己博客的访问量,这也是后边我将要进行的项目的一部分,后边我会对博客的访问量进行分析,以折线图和饼图等可视化的方式展示自己博客被访问的情况,使自己能更加清楚自己的哪些博客更受关注,博客专家请勿喷,因为我不是专家,我听他们说专家本身就有这个功能. 一.网址分析 进入自己的博客页面,网址为:http://blog.csdn.net/xingjiarong 网址还是非常清晰的就是cs

python爬取某个网站的图片并保存到本地

python爬取某个网站的图片并保存到本地 #coding:utf-8 import urllib import re import sys reload(sys) sys.setdefaultencoding('gb2312') #获取整个页面的数据 def getHtml (url): page = urllib.urlopen(url) html = page.read() return html #保存图片到本地 def getImg(html): reg = r'src="(.+?\.