首页 > 其他分享 >爬取彼岸网明星图片

爬取彼岸网明星图片

时间:2022-11-14 10:34:31浏览次数:50  
标签:明星图片 src name img url resp 彼岸 爬取 headers


爬取彼岸网明星图片:

背景:彼岸网是一个大型的图片网站,上面有很多的图片,这次我们就来爬取彼岸网

第一步:

准备Python爬取准备前的各种库:

import requests
from lxml import etree
import os
import time
import random

没有上面库的,通过pip 命令去安装,例如:pip install 库名

下面我们就开始了:

我们先要拿到网页的一个响应数据:

def get_url():
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
}
url='http://pic.netbian.com/4kmeinv/index.html'
resp=requests.get(url,headers=headers)
print(resp.text)

如果,上面这个样的话会出现乱码:

如图1:

爬取彼岸网明星图片_html

我们在上面加一个编码格式就可以了:

resp.encoding = 'GBK'
彼岸网的编码格式是GBK
但是其他每个网站编码格式不一样,但是都在UTF-8或者GBK之间。
def get_url():
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
}
url='http://pic.netbian.com/4kmeinv/index.html'
resp=requests.get(url,headers=headers)
resp.encoding = 'GBK'
print(resp.text)

如图2:

爬取彼岸网明星图片_.net_02

然后用xpath定位:

图3:

爬取彼岸网明星图片_.net_03

图4:

爬取彼岸网明星图片_.net_04

图5:

爬取彼岸网明星图片_数据_05

html = etree.HTML(resp.text)
img_src = html.xpath('//ul[@class="clearfix"]/li/a/img/@src')
print(img_src)
img_name = html.xpath('//ul[@class="clearfix"]/li/a/img/@alt')
print(img_name)

我们通过上面的xpath成功定位到图片的地址,下面我们就通过地址拼接来找到图片地址:

img_src = ['http://pic.netbian.com' + x for x in img_src]

图6:

爬取彼岸网明星图片_数据_06

图7

爬取彼岸网明星图片_.net_07

下面是数据的持久化,也就是图片的储存:

path='彼岸明星图片'#图片保存文件夹
for src, name in zip(img_src,img_name):
img_content=requests.get(src,headers=headers).content#再次发起请求,请求图片的地址并且把图片转成二进制数据,使计算机可以进行储存
img_name=name+'.jpg'#增加图片的后缀名,方便以图片形式打开
if not os.path.exists(path):#用import os 库,进行文件夹的创建
os.mkdir(path)#如果图片保存文件夹没有就进行创建文件夹
with open(path+'./%s'%img_name,'wb') as f:#图片文件二进制形式存储
f.write(img_content)
print("正在下载:",img_name)
time.sleep(random.randint(1,2))#设置时间,防止网站反爬虫机制发现。

上面,我们是不是只能访问一页的数据,我们想爬取多页的数据怎么办呢?

我们通过观察网站信息分析发现:

图8

爬取彼岸网明星图片_数据_08

我们就来设置一下分页:

url='http://pic.netbian.com/4kmeinv/index_{}.html'.format(page)

通过上面就可以设置分页

上面代码我们需要优化一下,下面是优化后的完整代码:

import requests
from lxml import etree
import os
import time
import random
path='彼岸明星图片'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
}
def get_url(page):
url='http://pic.netbian.com/4kmeinv/index_{}.html'.format(page)
resp=requests.get(url,headers=headers)
resp.encoding = 'GBK'
response=resp.text
return response
def main(index):
html=etree.HTML(index)
img_src = html.xpath('//ul[@class="clearfix"]/li/a/img/@src')
#print(img_src)
img_src=['http://pic.netbian.com'+ x for x in img_src]
img_name=html.xpath('//ul[@class="clearfix"]/li/a/img/@alt')
#print(img_name)
for src, name in zip(img_src,img_name):
img_content=requests.get(src,headers=headers).content
img_name=name+'.jpg'
if not os.path.exists(path):
os.mkdir(path)
with open(path+'./%s'%img_name,'wb') as f:
f.write(img_content)
print("正在下载:",img_name)
time.sleep(random.randint(1,2))

if __name__ == '__main__':
ss=str(input('请输入你想要的图片:'))
a=int(input())
for page in range(1,a):#分页查询
index=get_url(page)
main(index)

效果:

图9:

爬取彼岸网明星图片_数据_09


标签:明星图片,src,name,img,url,resp,彼岸,爬取,headers
From: https://blog.51cto.com/u_15870497/5848492

相关文章

  • 正则爬取糗事百科热图
    正则爬取糗事百科热图:第一步:找到网址我们分析Header,是Get请求下面开始撸代码:importrequestsimportjson,timeimportre,os上面先导入库没有的pipintstall安装库,可以通过......
  • Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤
    Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤文章目录​​Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤​​​​背景:LOL这款游戏有着大量的玩家,这个游戏里......
  • Python爬虫之爬取绝对领域美女图片
    Python爬虫之爬取绝对领域美女图片第一步:导入模块:importrequestsfromlxmlimportetree第二步:定义函数:defget_url(start_url):response=requests.get(start_url)d......
  • 双11,用Python爬取4000多条笔记本电脑的销售数据并分析
    双11,用Python爬取4000多条笔记本电脑的销售数据并分析2022年,大部分电子产品的销量都在下滑,比如手机,一方面,产品的创新和提升不足,另一方面,大部分人更愿意把钱存起来,降低生活中......
  • 爬取豆瓣TOP250
    实验1基于多线程的静态网页爬取项目1.实验目的(1)熟悉网页浏览器开发工具的使用;(2)掌握网页爬取requests库的使用;(3)掌握网页解析技术,例如Xpath、BeautifulSoup、re等;(4)......
  • Excel爬取住宅房价数据并可视化,高手都这样做!
    如何用Excel爬取网页数据?是的,你没有听错,习惯性的数据爬取大家都想到的是Python,很多教程也是在讲Python数据爬取,今天给大家讲得是如何用Excel爬取网页数据,不仅可以爬取网页数......
  • 微博动态图片爬取
    微博动态图片爬取由于微博的网页端有反爬虫,需要登录,所以我们换个思路,曲线救国。我们找到微博在浏览器上面用于手机端的调试的APL,如何找到呢?我这边直接附上微博的手机端的地......
  • python一个好玩的库,可以直接调接口数据,进行数据分析,不用去爬取数据集再进行分析了
    python一个好玩的库,可以直接调接口数据,进行数据分析,不用去爬取数据集再进行分析了简介这个库的名字叫GoPUP,GitHub主页是:https://github.com/justinzm/gopup这其实是一个基......
  • python3爬取网页图片
    爬取url网页里面所有的图片,把url填上就能用了,下面的自己看着改改进行筛选。importrequestsimportreimporttimeimportrandomimportosdefFind(string):#f......
  • 【C#爬虫】使用C# 进行bing翻译爬取
    ​ 首先我们打开bing翻译页面并将浏览器控制台打开​编辑然后在文本框随便输入看右侧工作台中网络里面请求的变化经过多次输入​编辑可以看到每次输入字符后都会......