目录
操作系统:win 10
编辑器:pycharm专业版
语言及版本:python 3.8
使用的库:requests、os、parsel
- 发送请求, 模拟浏览器对于 图片目录页面 发送请求
- 获取数据, 获取服务器返回响应数据
- 解析数据, 提取我们想要数据内容
- 发送请求, 模拟浏览器对于 图片详情页url 发送请求
- 获取数据, 获取服务器返回响应数据
- 解析数据, 提取我们想要数据内容
- 保存数据, 把图片保存文本文件夹
import requests
import parsel
import os
此次请求的目标网址是千叶网上的4K动漫壁纸,4k动漫壁纸_4k动漫图片-千叶网
url = 'http://qianye88.com/cate12/'
response = requests.get(url=url)
print(response)
返回<Response [200]>代表对网址请求成功,到这就已经成功一半了。就问你惊不惊喜,有木有jio得嘎嘎简单!!!
按下键盘F12打开开发者工具,点击图片会跳转。可以看到这边包括有图片详情页地址以及壁纸标题。可以使用parsel库解析我们需要的数据内容
sel = parsel.Selector(response)
divs = sel.xpath('//div[@class="flex-images auto mt"]/div')
for div in divs:
href = 'http://qianye88.com/' + div.xpath('.//a[1]/@href').get()
title = div.xpath('.//a[1]/@title').get()
print(title, href)
这样就可以得到我们需要的壁纸的详情页啦~
以第一张鬼刀壁纸为例。同上操作,我们可以看到这边的src地址就是我们需要的图片资源。到这里寻找原链接的过程基本就实现啦~
resp = requests.get(url=href).text
se = parsel.Selector(resp)
src = se.xpath('//div[@class="content-left layout fl"]/img/@src').get()
模拟浏览器:?
response.text 获取响应文本数据
response.json() 获取响应json字典数据
response.content 获取响应二进制数据
我们使用requests.get()方法向指定的url发送get请求,并获取到响应的内容
content = requests.get(url=src).content
with open('千叶网\\' + title + '.jpg', mode='wb') as f:
f.write(content)
print('保存成功:', title)
这样就基本实现壁纸自由啦~
其实还可以做到多页爬取的,等后续熟悉再去自行探索吧哈哈哈
可能会出现显示文件夹不存在的报错,那是因为我新建了一个叫千叶网的文件夹并把所有图片都保存在该目录下面,只要在前面加上下面这段代码就可以解决这个问题了。
if not os.path.exists('千叶网\\'):
os.mkdir('千叶网\\')