zoukankan      html  css  js  c++  java
  • 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,'爬取成功!!!')

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

  • 相关阅读:
    linux 挂载本地iso
    安装python
    QT中如何使用MYSQL 以及静态编译QT中如何加上MYSQL(2)
    qt中如何使用mysql 以及静态编译qt中如何加上mysql(1)
    关于写qt项目时的代码格式问题
    qt相关学习以及 qt creator如何静态编译
    Qt Creator中如何在QLabel上画矩形框并且保存画完后的图形
    android localsocket 传输大量数据的问题
    android binder使用demo
    android binder使用
  • 原文地址:https://www.cnblogs.com/hahaa/p/15466579.html
Copyright © 2011-2022 走看看