一、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. 处理Account locked due to 217 failed logins的问题

    处理Account locked due to 217 failed logins的问题 [root@xxx1 ~]# scp 123.txt root@IP地址:/root Account lock ...

  2. 我对git的快速使用和理解

    收藏较好的,分享给大家 https://mp.weixin.qq.com/s/k4tU8snvssyKJ2WkvkFrZA

  3. 2.3 Python语言基础

    2.3 Python语言基础 1 语言语义(Language Semantics) 缩进,而不是括号 Python使用空格(tabs or spaces)来组织代码结构,而不是像R,C++,Java那 ...

  4. struts2中的文件上传和下载

    天下大事,必做于细.天下难事,必作于易. 以前见过某些人,基础的知识还不扎实就去学习更难的事,这样必定在学习新的知识会非常迷惑结果 再回来又一次学习一下没有搞懂的知识,这必定会导致学习效率的下降!我写 ...

  5. macaca自动化初体验

     1.安装#cnpm i -g macaca-cli macaca-ios# Install Tools And Driver2.检查安装环境#macaca doctor ANT_HOME未设置,下载 ...

  6. P1353 [USACO08JAN]跑步Running

    题目描述 The cows are trying to become better athletes, so Bessie is running on a track for exactly N (1 ...

  7. cgroup测试存储设备IOPS分配

    1 使用:创建树并且attach子系统 首先要创建文件系统的挂载点作为树的根 mkdir /cgroup/name mkdir /cgroup/cpu_and_mem Mount这个挂载点到一个或者多 ...

  8. oracle 判断字段相等,但类型不同引起的性能问题

    最近做ogg数据同步,然后触发器加工数据放入另外一张表,由于数据量很大,一分钟几万条数据,由于一些条件字段类型不匹配,引起ogg阻塞,比较头大.最后分析发现性能问题.请看下图: phmxxh是varc ...

  9. 如何修改macbook的MAC地址

    修改命令 sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx 查看 ifconfig en0 | grep ether 随机生产一个MAC地址 openssl rand ...

  10. Redis全方位详解--数据类型使用场景和redis分布式锁的正确姿势

    一.Redis数据类型 1.string string是Redis的最基本数据类型,一个key对应一个value,每个value最大可存储512M.string一半用来存图片或者序列化的数据. 2.h ...