Python爬虫教程(一)使用request+Beautiful爬取妹子图

官方文档

        以下内容大多来自于官方文档,本文进行了一些修改和总结。要了解更多可以参考官方文档:

                                            官方文档
request安装

        通过pip安装

pip install requests

request部分使用示例
    

import requests
response = requests.get('https://www.douban.com/') # get()方法发送请求,获取HTML网页
response.status_code  # 返回状态码
response.text  #以文本格式返回网页内容
response.content  # 以二进制形式返回

        request还有其他请求方法和属性 可参考崔庆才个人博客:

BeautifulSoup库

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

        以下为官方文档:

                                        Beautiful Soup 4.4.0 文档

BeautifulSoup安装

     通过pip安装

       pip install beautifulsoup4

BeautifulSoup基本使用

from bs4 import BeautifulSoup
url='http://www.baidu.com'
res = requests.get(url)    # get()方法发送请求,获取HTML网页
soup = BeautifulSoup(res.text, 'html.parser')  # # 使用BeautifulSoup来解析我们获取到的网页

使用request+beautifulsoup爬取妹子图图片

    图片下载到本地文件夹中,如图:



直接上代码啦,详情解释,看不懂留言解释 也欢迎大神指错:

爬取链接:mzitu.com/page/1

#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('D:\\666\\'+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)
不定时更新,喜欢请关注  / 比心






猜你喜欢

转载自blog.csdn.net/wanhaiwei/article/details/79886635
今日推荐