Python爬虫:爬一个很多小姐姐壁纸的网站,有点紧张(附源码!)

x33g5p2x  于2021-11-21 转载在 Python  
字(1.5k)|赞(0)|评价(0)|浏览(415)

兄弟们,今天爬一个令人心情愉悦的网站

读者:哦豁!还有这么好的事,快写快写!我要心情愉悦!

马上 ,开始正题吧。

用到的环境:
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,'爬取成功!!!')

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

相关文章