手把手教你用Python网络爬虫获取壁纸图片
/1 前言/
想要电脑换个壁纸时都特别苦恼 , 因为百度搜到那些壁纸也就是分辨率达到了壁纸的水准 。 可是里面图片的质量嘛 , 实在是不忍直视… 。 而有些4K高清的壁纸大多是有版权的 ,这就使我们想要获取高清的图片,变得非常的困难 。
wallhaven 网站是无版权的4K壁纸, 而且主题丰富(创意、摄影、人物、动漫、绘画、视觉) , 今天教大家如何去批量的去下载wallhaven4K原图 。
文章插图
/2 项目目标/
获取对应的4K壁纸 , 并批量下载保存在文件夹 。
/3 涉及的库和网站/
软件:PyCharm
需要用到的库:requests、lxml、fake_useragent、time
先列出网址 , 如下所示:
;page={}
网址city=%E5%B9%BF%E5%B7%9E指的是广州这个城市、pn指的是页数 。
/4 项目分析/
滑动鼠标观察下一页的网址的变化:
;page=1
;page=2
;page=3
滑动下一页时 , 每增加一页page自增加1 , 用{}代替变换的变量 , 再用for循环遍历这网址 , 实现多个网址请求 。
/5 具体实现/
1、定义一个class类继承object , 定义init方法继承self , 主函数main继承self 。 导入需要的库和网址 。
import requests
from lxml import etree
from fake_useragent import UserAgent
import time
class wallhaven(object):
def __init__(self):
self.url = ";page={}"
def main(self):
pass
if __name__ == '__main__':
imageSpider = wallhaven
imageSpider.main
2、fake_useragent模块实现随机产生UserAgent 。
ua = UserAgent(verify_ssl=False)
for i in range(1, 50):
self.headers = {
'User-Agent': ua.random,
}
3、for循环实现多网址访问 。
startPage = int(input("起始页:"))
endPage = int(input("终止页:"))
for page in range(startPage, endPage + 1):
url = self.url.format(page)
4、发送请求 获取响应 。
'''发送请求 获取响应'''
def get_page(self, url):
res = requests.get(url=url, headers=self.headers)
html = res.content.decode("utf-8")
return html
5、解析一级页面 , 得到二级页面的 href 地址 。
def parse_page(self, html):
parse_html = etree.HTML(html)
image_src_list = parse_html.xpath('//figure//a/@href')
【手把手教你用Python网络爬虫获取壁纸图片】6、遍历二级页面网址 , 发生请求、解析数据 。 找到相对于的图片地址 。
html1 = self.get_page(i) # 二级页面发生请求
parse_html1 = etree.HTML(html1)
# print(parse_html1)
filename = parse_html1.xpath('//div[@class="scrollbox"]//img/@src')
# print(filename)
7、获取到的图片地址 , 发生请求 , 保存 。
# 图片地址发生请求
for img in filename:
dirname = "./图/" + img[32:] '''可修改图片保存的地址'''
print(dirname)
html2 = requests.get(url=img, headers=self.headers).content
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 教你用Siri来控制电脑:真香
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 虾米|虾米音乐宣布2月5日关停 你用过虾米音乐吗?
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 怎样提高苹果6的运行速度?有这些问题就别救了,你用了几年了?
- 手把手配置HLS流媒体服务器
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...