一、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是Python的一个库,最主要的功能就是从网页爬取我们需要的数据。BeautifulSoup将html解析为对象进行处理,全部页面转变为字典或者数组。

pip install beautifulsoup4

BeautifulSoup基本使用

三、抓取图片

from bs4 import BeautifulSoup
url='http://www.mzitu.com'
res = requests.get(url) # get()方法发送请求,获取HTML网页
soup = BeautifulSoup(res.text, 'html.parser') # # 使用BeautifulSoup来解析我们获取到的网页
#coding=utf-8
import requests
from bs4 import BeautifulSoup
def imgurl(url):
res = requests.get(url) # url为a标签的helf链接,即为图片封面的图片
soup = BeautifulSoup(res.text, 'html.parser') # 使用BeautifulSoup来解析我们获取到的网页
page = int(soup.select('.pagenavi span')[-2].text) # 获取总页数,-2为去掉上下页
# a = soup.select('.main-image a')[0] # 获取当前图片链接
# src = a.select('img')[0].get('src')
src = soup.select('.main-image a img')[0].get('src') # 获取图片链接
meiziid = src[-9:-6] # 切片将src的倒数的字符串做名字
print('开始下载妹子:', format(meiziid)) # 输出窗口提示下载
for i in range(1, page+1):
i = '%02d' % i
img = src.replace('01.jpg', str(i)+'.jpg') # replace()替换页数
# 添加headers模拟浏览器工作 反反爬
headers = {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
'Referer': 'http://www.mzitu.com'
}
response = requests.get(img, headers=headers) f = open('/Users/xcn/Desktop/mzitu/'+meiziid+'%s.jpg' % i, 'wb') # 放在D:\666\目录下
f.write(response.content)
f.close()
print('===> %s 完成 ' % (meiziid + i))
print(' %s 已下载\n' % meiziid) def imgpage(page=''):
res = requests.get('http://www.mzitu.com/page/' + page)
soup = BeautifulSoup(res.text, 'html.parser') # 解析页面
href = soup.select('#pins a') # 筛选 list = set([i.get('href') for i in href]) # 遍历获取筛选后的href链接并用set()去掉重复的链接
[imgurl(i) for i in list] # 遍历下载 result = input('下载哪一页:')
imgpage(result)

四、大功告成

使用request+Beautiful爬取妹子图的更多相关文章

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

    Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...

  2. Python 爬虫入门之爬取妹子图

    Python 爬虫入门之爬取妹子图 来源:李英杰  链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...

  3. scrapy 也能爬取妹子图?

    目录 前言 Media Pipeline 启用Media Pipeline 使用 ImgPipeline 抓取妹子图 瞎比比前言 我们在抓取数据的过程中,除了要抓取文本数据之外,当然也会有抓取图片的需 ...

  4. requests+正则表达式 爬取 妹子图

    做了一个爬取妹子图某张索引页面的爬虫,主要用request和正则表达式. 感谢 崔庆才大神的 爬虫教学视频 和 gitbook: B站:https://www.bilibili.com/video/a ...

  5. 小白学 Python 爬虫(16):urllib 实战之爬取妹子图

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  6. 爬取妹子图(requests + BeautifulSoup)

    刚刚入门爬虫,今天先对于单个图集进行爬取,过几天再进行翻页爬取. 使用requests库和BeautifulSoup库 目标网站:妹子图 今天是对于单个图集的爬取,就选择一个进行爬取,我选择的链接为: ...

  7. 利用 PhpQuery 随机爬取妹子图

    前言 运行下面的代码会随机得到妹子图的一张图片,代码中的phpQuery可以在这里下载:phpQuery-0.9.5.386.zip <?php require 'phpQuery.php'; ...

  8. python 爬取妹子图

    作为一个python还没入门的小白,搞懂这段代码实在是很不容易,还要去学html的知识(#黑脸) 因此我加上了注释,比较好读懂点 #coding=utf-8 import time import re ...

  9. Python爬虫个人记录(三)爬取妹子图

    这此教程可能会比较简洁,具体细节可参考我的第一篇教程: Python爬虫个人记录(一)豆瓣250 Python爬虫个人记录(二)fishc爬虫 一.目的分析 获取煎蛋妹子图并下载 http://jan ...

随机推荐

  1. JS日期比较大小 给定时间和持续时间计算最终时间

       /* 往指定时间字符串上加时间间隔,获得新的时间字符串  * startDateStr:开始时间字符串,类似"2015-7-20 17:26:00"  * durationN ...

  2. tomcat 开启远程debug

    修改 tomcat  目录下  /bin/catelina.sh #                   execution immediately after startup. Default is ...

  3. (转)获取安卓iOS上的微信聊天记录、通过Metasploit控制安卓

    在这篇文章中我们将讨论如何获取安卓.苹果设备中的微信聊天记录,并演示如何利用后门通过Metasploit对安卓设备进行控制.文章比较基础.可动手性强,有设备的童鞋不妨边阅读文章边操作,希望能激发大家对 ...

  4. 百度图表库ECharts

    本文主要包含ECharts的介绍和教程.关于ECharts的应用就不多了,像经营状况.收支情况.数据分析等都需要以图表的形式展现,因为这样更直观. 一.介绍 ECharts,一个使用 JavaScri ...

  5. linux 修改时间永久

    date -s "20190421 16:36:20" &&hwclock --systohc

  6. 浅谈基于FormsAuthentication的认证

    一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到 Session中存储的用户基本信息,查看比较他有没有登录和能否 ...

  7. 在windows上安装不同(两个)版本的Mysql数据库

    1.起因: 需要导入一个sql文件,发现死活导不进去.当执行到这一句时,就有问题.经过一番搜索,原来是我的数据库版本(原先Mysql版本5.5)低了,而支持该语句的版本应该是至少要5.7.那我索性就去 ...

  8. 学习scalaenv

    背景 最近由于工作需要, 我总是在不同的scala项目间流动开发. 这就遇到一个很棘手的问题, 这几个项目用的scala版本不一致, 老项目用的是 scala 2.11.8, 新项目用的是 scala ...

  9. 【转】在发布站点前,Web开发者需要关注哪些技术细节

    转摘:http://www.csdn.net/article/2014-05-19/2819818-technical-details-programmer 在网站发布前,开发者需要关注有许多的技术细 ...

  10. eclipse-Debug调试操作

    去除所有断点(打开debug视图):(或者直接点击菜单栏的run也有对应的菜单) 常用快捷键:  F5    Step into 单步调试进入函数内部.  F6 Step over 单步调试不进入函数 ...