前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python爬虫之——爬取煎蛋网图片

python爬虫之——爬取煎蛋网图片

作者头像
种花家的奋斗兔
发布2020-11-13 14:16:44
4290
发布2020-11-13 14:16:44
举报

事先声明:本人之前并没有听说过什么煎蛋网,代码学习来自其他网站,仅供学习使用。

代码语言:javascript
复制
import requests
import os
import time
from bs4 import BeautifulSoup


# 发出请求获得HTML源码
def get_html(url):
    # 指定一个浏览器头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
    # 代理,免费的代理只能维持一会可能就没用了,自行更换
    proxies = {'http': '111.23.10.27:8080'}
    try:
        # Requests库的get请求
        resp = requests.get(url, headers=headers)
    except:
        # 如果请求被阻,就使用代理
        resp = requests.get(url, headers=headers, proxies=proxies)

    return resp


# 创建文件夹的函数,保存到D盘
def mkdir(path):
    # os.path.exists(name)判断是否存在路径
    # os.path.join(path, name)连接目录与文件名
    isExists = os.path.exists(os.path.join("D:\jiandan", path))
    # 如果不存在
    if not isExists:
        print('makedir', path)
        # 创建文件夹
        os.makedirs(os.path.join("D:\jiandan", path))
        # 切换到创建的文件夹
        os.chdir(os.path.join("D:\jiandan", path))
        return True
    # 如果存在了就返回False
    else:
        print(path, 'already exists')
        return False


# 获得图片地址调用download函数进行下载
def get_imges():
    # 调用函数获得所有页面
    for url in all_page():
        path = url.split('-')[-1]
        # 创建文件夹的函数
        mkdir(path)
        # 调用请求函数获得HTML源码
        html = get_html(url).text
        # 使用lxml解析器,也可以使用html.parser
        soup = BeautifulSoup(html, 'lxml')
        # css选择器
        allimgs = soup.select('div.text > p > img')
        # 调用download函数下载保存
        download(allimgs)
    # 执行完毕打出ok
    print('ok')


# 获得所有页面
def all_page():
    base_url = 'http://jandan.net/ooxx/'
    # BeautifulSoup解析页面得到最高页码数
    soup = BeautifulSoup(get_html(base_url).text, 'lxml')
    # 获得最高页码数
    allpage = soup.find('span', class_="current-comment-page").get_text()[1:-1]
    urllist = []
    # for循环迭代出所有页面,得到url
    for page in range(1, int(allpage) + 1):
        allurl = base_url + 'page-' + str(page)
        urllist.append(allurl)
    return urllist


# 保存图片函数,传入的参数是一页所有图片url集合
def download(list):
    for img in list:
        urls = img['src']
        # 判断url是否完整
        if urls[0:5] == 'http:':
            img_url = urls
        else:
            img_url = 'http:' + urls
        filename = img_url.split('/')[-1]
        # 保存图片
        with open(filename, 'wb') as f:
            # 直接过滤掉保存失败的图片,不终止程序
            try:
                f.write(get_html(img_url).content)
                print('Sucessful image:', filename)
            except:
                print('Failed:', filename)


if __name__ == '__main__':
    # 计时
    t1 = time.time()
    # 调用函数
    get_imges()
    print(time.time() - t1)

通过如代码,我们可以在D盘创建目录并保存相关图片。

亲测,代码无误。

(不过,煎蛋网对图片进行了加密,所以,以上代码并不能下载到太多的图片)

参考:https://www.jqhtml.com/13393.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档