• Python爬虫:爬点大家都喜欢的东西,比如美女!每天保持心情愉悦!


    今天爬一个专门心情愉悦的网站!懂得都懂~
    在这里插入图片描述
    读者:哦豁!还有这么好的事,快写快写!我要心情愉悦!

    马上 ,开始正题吧。

    用到的环境:
    python 3.8
    pycharm 2021专业版 >>> 激活码
    requests >>> pip install requests
    parsel >>> pip install parsel

    大致分为两步

    一. 分析网站 (思路分析)
    1. 确定需要爬取的内容
    2. 通过查看源代码分析数据内容

    二. 爬虫流程
    1. 向目标网站发送请求(get,post)
    2. 获取数据(网页源代码)
    3. 解析网页(re正则表达式,css选择器,xpath,bs4,json) 提取每一个详情页的链接
    4. 向详情页发送请求
    5. 获取数据(网页源代码)
    6. 解析网页 (提取图片链接)
    7. 向图片链接发送请求
    8. 获取数据(图片二进制数据)
    9. 保存数据
    很多小伙伴在学习Python的过程中因为没有好的资料或者没有人解答导致自己学习不下去,所以我这里都给大家准备好了,都在这里领取,包括2021最新的,有啥问题都可以在这里解答或者一起交流,学习啥的~
    这就是一个大概的爬虫流程,咱们直接点,上代码!

    import requests
    import parsel
    import re
    import os
    
    for page in range(1, 11):
        print(f'==================正在爬取第{page}页==================')
        # 1.向目标网站发送请求(get,post)
        response = requests.get(f'https://www.kanxiaojiejie.com/page/{page}')
        # 2. 获取数据(网页源代码)
        data_html = response.text
        # 3. 解析网页(re正则表达式,css选择器,xpath,bs4,json) 提取每一个详情页的链接与标题
        zip_data = re.findall('<a href="(.*?)" target="_blank"rel="bookmark">(.*?)</a>', data_html)
        for url, title in zip_data:
            print(f'----------------正在爬取{title}----------------')
            if not os.path.exists('img/' + title):
                os.mkdir('img/' + title)
            # 4. 向详情页发送请求
            resp = requests.get(url)
            # 5. 获取数据(网页源代码)
            url_data = resp.text
            # 6. 解析网页 (提取图片链接)
            selector = parsel.Selector(url_data)
            img_list = selector.css('p>img::attr(src)').getall()
          
            for img in img_list:
                # 7. 向图片链接发送请求
                # 8. 获取数据(图片二进制数据)
                img_data = requests.get(img).content
                # 9. 保存数据
                img_name = img.split('/')[-1]
                with open(f"img/{title}/{img_name}", mode='wb') as f:
                    f.write(img_data)
                print(img_name, '爬取成功!!!')
            print(title,'爬取成功!!!')

    效果太好看了,我就不展示了,大家自己试试~

  • 相关阅读:
    vue promise
    vue 数组操作
    vue登录注册切换的坑
    筆記連接
    vue配置jquery和bootstarp
    css的寬高約束
    css框模型
    css居中flex
    css居中
    遍历forEach与map的区别-forEach踩坑记
  • 原文地址:https://www.cnblogs.com/hahaa/p/15466579.html
Copyright © 2020-2023  润新知