一、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. 用windows自带的fsutil修改稀疏文件大小成功,但文件内容似乎丢失

    fsutil sparse setflag. fsutil sparse setrange 10M对应字节,1G对应字节.. 看文件属性,实际尺寸是小了,但内容似乎也丢了..因为自己把该文件做成虚拟盘 ...

  2. JS定时器相关用法

    一.定时器在javascript中的作用 1.制作动画 <!DOCTYPE html> <html lang="en"> <head> < ...

  3. Guava包学习--Hash

    我们HashMap会有一个rehash的过程,为什么呢?因为java内建的散列码被限制为32位,而且没有分离散列算法和所作用的数据,所以替代算法比较难做.我们使用HashMap的时候它自身有一个reh ...

  4. 1552/3506. [CQOI2014]排序机械臂【平衡树-splay】

    Description Input 输入共两行,第一行为一个整数N,N表示物品的个数,1<=N<=100000. 第二行为N个用空格隔开的正整数,表示N个物品最初排列的编号. Output ...

  5. VC++程序运行时间测试函数

    0:介绍 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数.还比如我们通过记录函数或者算 ...

  6. P2467 [SDOI2010]地精部落

    题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为N的山脉H可分为从左到右的N段,每段有一个独一无二的高度Hi,其中Hi是1到N之间的正整数 ...

  7. 关于CodePlex

    CodePlex是微软的开源工程网站,涉及诸多微软最新技术的开源工程. 网址:http://www.codeplex.com/ 应常去看看.

  8. 郑重推荐开源CANopen协议栈CANFestival(LGPL许可)!!!!!!!!

    郑重推荐开源CANopen协议栈CANFestival(LGPL许可)!!!!!!!!(这条文章已经被阅读了 次) 时间:2010/03/04 06:47am 来源:winshton [这个贴子最后由 ...

  9. oracle中的条件语句

    oracle中case when then及decode用法 一.case … when … then 语法:  – 写法一:  case(条件)  when 值1 then 返回值1  when 值 ...

  10. 解决 an app id with identifier is not available. please enter a different string. xcode 7.3

    百度上这帮人,真的服了,没有一个人能解决问题,最后在 stackoverflow 上找到解决方法 The Application ID Name should be same as applicati ...