Python爬取自然风景图片代码
\qquad 需要用到python的etree库和requests库,需要提前下载安装。
from lxml import etree
import requests
for index in [1,2,3]:# 用for循环爬取不同的页面
if index==1:
url='https://pic.netbian.com/4kfengjing/'# 需要爬取自然风景的网页URL
else:
url='https://pic.netbian.com/4kfengjing/index_'+str(index)+'.html'# 需要爬取自然风景的网页URL
headers={
'User-Agent': 'UA伪装'
}# UA伪装:设置浏览器'User-Agent',需要自己设置
response = requests.get(url=url,headers=headers)# 调用 get方法返回一个响应对象response
response.encoding = 'gbk'# 定义response的编码方式为gbk,来正确显示后面的中文
page_text = response.text# 把response文本化
# 利用xpath进行数据解析:src的属性值,alt属性
tree = etree.HTML(page_text)# 构造一个etree对象tree
li_list=tree.xpath('//div[@class="slist"]/ul/li')# 利用xpath表达式定位到我们所需要的li标签
for li in li_list:# 循环每个li标签,将其内部的img标签中的src给提取出来
#提取li标签中img标签的src属性,并加上域名表示正确的图片地址
img_src='https://pic.netbian.com/'+li.xpath('./a/img/@src')[0]
img_name=li.xpath('./a/img/@alt')[0]+'.jpg'# 利用该图片的alt属性作为其存储名称
print(img_name)
print(img_src)
img_data = requests.get(url=img_src,headers=headers).content # 再次通过requests.get方法获取图片的二进制代码
img_path = '自然图片/'+img_name # 设置图片存储路径,文件夹一定要事先新建好
with open(img_path,'wb') as fp: # 打开新文件
fp.write(img_data) # 将我们提取到的图片二进制代码写入该文件中,得到该图片
print(img_name,'下载成功')