美桌壁纸小姐姐壁纸爬取
我只是个小小的萌新,大佬勿喷
爬虫的思路
确定爬取的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 条评论) |