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,'爬取成功!!!')

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

  • 相关阅读:
    windows wsl2 卸载应用
    windows wsl2中ubuntu安装pip3
    href="#"与href="javascript:void(0)"的区别
    JavaScript 变量提升
    虚拟机升级之后.ubuntu找不到网络解决办法
    javascript 全局变量和局部变量
    flask celery使用
    flask magokit使用
    flask 缓存使用
    Linux设置/删除环境变量方法
  • 原文地址:https://www.cnblogs.com/hahaa/p/15466579.html
Copyright © 2011-2022 走看看