爬取小姐姐壁纸

阅读: 评论:0

爬取小姐姐壁纸

爬取小姐姐壁纸

介绍

美桌壁纸小姐姐壁纸爬取

我只是个小小的萌新,大佬勿喷

准备

  • PYthon3.8(我用的是这个版本的)
  • pycharm (其他的编辑器也可以)
  • 模块:requests,parsel,os

思路

爬虫的思路

  1. 分析目标网页,确定爬取的url路径,headers参数
  2. 发送请求 – requests 模拟浏览器发送请求,获取响应数据
  3. 解析数据 – parsel 转化为Selector对象,Selector对象具有xpath的方法,能够对转化的数据进行处理
  4. 保存数据

步骤

第一步

确定爬取的url路径,headers参数

base_url = '.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'}

User-Agent在浏览器的F12 Network里面获取(里面找到headers,在最下面就有你自己浏览器的User-Agent参数)

第二步

发送请求 – requests 模拟浏览器发送请求,获取响应数据

response = (base_url, headers=headers)
data = 

第三步

解析数据 – parsel 转化为Selector对象,Selector对象具有xpath的方法,能够对转化的数据进行处理

html_data = parsel.Selector(data)
data_list = html_data.xpath('//div[@class="Left_bar"]//ul/li/a/@href|//div[@class="Left_bar"]//ul/li/a/@title').extract()

使用列表推导式对列表进行分组

data_list = [data_list[i:i + 2] for i in range(0, len(data_list), 2)]

创建图片的文件夹

if not ists('img\' + file_name):os.mkdir('img\' + file_name)
print('正在下载:', file_name)

发送详情页的请求,解析出总页数

response_2 = (html_url, headers=headers).text
html_2 = parsel.Selector(response_2)
page_num = html_2.xpath('//div[@class="ptitle"]//em/text()').extract_first()

最后

构建相册翻页的url地址,解析每一页的图片url地址,保存数据

for url in range(1, int(page_num) + 1):url_list = html_url.split('.')all_url = url_list[0] + '.' + url_list[1] + '.' + url_list[2] + '_' + str(url) + '.' + url_list[3]response_3 = (all_url, headers=headers).texthtml_3 = parsel.Selector(response_3)img_url = html_3.xpath('//div[@class="pic-meinv"]//img/@src').extract_first()img_data = (img_url, headers=headers).content# 图片的文件名img_name = str(url) + '.jpg'# 保存数据with open('img\{}\'.format(file_name) + img_name, 'wb') as f:print('下载完成:', img_name)f.write(img_data)

完整代码

import requests
import parsel
import os
base_url = '.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'}
response = (base_url, headers=headers)
data = 
html_data = parsel.Selector(data)
data_list = html_data.xpath('//div[@class="Left_bar"]//ul/li/a/@href|//div[@class="Left_bar"]//ul/li/a/@title').extract()
data_list = [data_list[i:i + 2] for i in range(0, len(data_list), 2)]
for alist in data_list:html_url = alist[0]file_name = alist[1]if not ists('img\' + file_name):os.mkdir('img\' + file_name)print('正在下载:', file_name)response_2 = (html_url, headers=headers).texthtml_2 = parsel.Selector(response_2)page_num = html_2.xpath('//div[@class="ptitle"]//em/text()').extract_first()for url in range(1, int(page_num) + 1):url_list = html_url.split('.')all_url = url_list[0] + '.' + url_list[1] + '.' + url_list[2] + '_' + str(url) + '.' + url_list[3]response_3 = (all_url, headers=headers).texthtml_3 = parsel.Selector(response_3)img_url = html_3.xpath('//div[@class="pic-meinv"]//img/@src').extract_first()img_data = (img_url, headers=headers).contentimg_name = str(url) + '.jpg'with open('img\{}\'.format(file_name) + img_name, 'wb') as f:print('下载完成:', img_name)f.write(img_data)


想要图片但懒得下载的走这边–>转送门
好像不是特别全上传的时候似乎漏掉了几个


偶然发现pyinstaller这个模块,这个模块可以把py程序封装成exe程序,在没有py环境的电脑上也可以运行
想要的同学可以直接下载,exe软件下载地址–>传送门

本文发布于:2024-02-02 19:28:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170687329045936.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:姐姐   壁纸   爬取小
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23