【Python爬虫实战】爬取彼岸图库高清图片
利用Python爬取彼岸图库高清图片
让你每天一张壁纸不重样,今天利用Python爬取 彼岸图库
分析网页 通过首页可以看到要获取全站图片必须先抓取各个4k图片目录的连接,以次抓取4k风景、4k美女、4k游戏… 要获取这一栏的数据就要对首页进行请求,分析出各个分类的首页连接!!! 打开开发者工具(F12)对网页进行分析 打开开发者工具点击Elements进入元素列表,在点击Elements左边的斜箭头进行网页元素定位找到需要的元素。此时就可以发现所有元素都存放在以下目录中:
<div class="classify clearfix"> <a href="/4kfengjing/" title="4K风景图片">4K风景</a> <a href="/4kmeinv/" title="4K美女图片">4K美女</a> <a href="/4kyouxi/" title="4K游戏图片">4K游戏</a> <a href="/4kdongman/" title="4K动漫图片">4K动漫</a> <a href="/4kyingshi/" title="4K影视图片">4K影视</a> <a href="/4kmingxing/" title="4K明星图片">4K明星</a> <a href="/4kqiche/" title="4K汽车图片">4K汽车</a> <a href="/4kdongwu/" title="4K动物图片">4K动物</a> <a href="/4krenwu/" title="4K人物图片">4K人物</a> <a href="/4kmeishi/" title="4K美食图片">4K美食</a> <a href="/4kzongjiao/" title="4K宗教图片">4K宗教</a> <a href="/4kbeijing/" title="4K背景图片">4K背景</a></div>
代码实现
分析完网页内容,选择就通过Pycharm对网页进行请求获取每一栏的url 下载相关的库 在Pycharm命令终端中输入
1 pip install requests 2 pip install lxml
Python 代码
栏的网页地址,在分析每一栏的网页信息。
通过这两张图片可以看出只需要修改index_5.html中的数字就可以实现翻页操作 再次通过开发者工具进行网页分析
此时在对网页进行请求,获取到每一张图片的连接和名字。代码如下:
def name_link(title, href):
for i in range(1, 5): # 需要全站图片, 扩大循环范围即可
if i == 1:
url = href
else:
url = href + index_{}.html.format(i)
# print(title, url)
response = requests.get(url, headers=headers).content.decode(gbk)
# print(response)
html = etree.HTML(response)
lis = html.xpath(//*[@id="main"]/div[3]/ul/li)
for li in lis:
img_name = li.xpath(./a/img/@alt)[0]
img_href = http://pic.netbian.com + li.xpath(./a/@href)[0]
# print(img_name, img_href)
img_name_url(title, img_name, img_href) # 传参
url和name,继续请求获取到图片的下载地址 继续分析分析图片页面的信息 通过页面分析可以看出src中存放的就是图片的真正地址,只需要得到src即可。代码如下:
def img_name_url(title, name, url):
response = requests.get(url, headers=headers).content.decode(gbk)
# print(response)
html = etree.HTML(response)
image_url = http://pic.netbian.com/ + html.xpath(//*[@id="img"]/img/@src)[0]
# print(name, image_url)
download(title, name, image_url) # 传参
到现在已经获取到了图片的url,请求写入文件就完成了。代码如下:
count = 1
def download(title, img_name, img_url):
global count
path = 彼岸图库/{}.format(title)
if not os.path.exists(path):
os.makedirs(path)
print(-------[{}]文件夹已经创建成功,开始下载图片-------.format(title))
print(正在下载{}, 这是第{}张图片.format(img_name, count))
response = requests.get(img_url, headers=headers)
with open(彼岸图库/{}/{}.jpg.format(title, img_name), wb)as f:
count += 1
f.write(response.content)
print({}已经成功下载, 这是第{}张图片.format(img_name, count))
title_href()
抓取所有的网页都是类似的思路,一步一步分析网页。
