Python爬取wallhaven的所有4k壁纸图片

目录

一、前端结构

二、代码 


一、前端结构

为get请求,携带参数如下:

随page参数变化网页变化 

 

 

需要在整张页面中进入:

//section[@class="thumb-listing-page"]//li/figure/a/@href

 

 

 进入后获取图片src:

//section[@class="fit"]/div[@class="scrollbox"]/img/@src

 

共92页 

二、代码 

#爬取wallhaven 4k类的所有图片

import requests
import chardet
from lxml import etree

url='https://wallhaven.cc/search?'
headers={
    'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.47'
}

total_img_url_list=[]
for pageNum in range(1,3):#爬取两页作为示例
    params={
        'q': 'id:65348',
        'sorting': 'random',
        'ref': 'fp',
        'seed': 'dHtqFi',
        'page': pageNum,
        }
    resp=requests.get(url=url,headers=headers,params=params)
    encoding=chardet.detect(resp.content)['encoding']
    #print(encoding)
    resp.encoding=encoding
    page_text1=resp.text

    tree1=etree.HTML(page_text1)
    img_url_list=tree1.xpath('//section[@class="thumb-listing-page"]//li/figure/a/@href')
    total_img_url_list+=img_url_list
    #print(src_list)

for img_src_url in total_img_url_list:
    resp=requests.get(url=img_src_url,headers=headers)
    encoding=chardet.detect(resp.content)['encoding']
    resp.encoding=encoding
    page_text2=resp.text
    
    tree2=etree.HTML(page_text2)
    img_url=tree2.xpath('//section[@class="fit"]/div[@class="scrollbox"]/img/@src')
    
    img_name = img_url[0].split('/')[-1]
    with open (
          'D:\\Programming\\Microsoft VS Code Data\\WebCrawler\\data\\img_wallhaven\\'+img_name,
          'wb'
          ) as fp:
          img=requests.get(url=img_url[0],headers=headers)
          fp.write(img.content)
          print(img_url,'爬取成功!')
print('爬取结束!!!')


 

 

可加快爬取速度的方式:

  1. 使用多线程或异步请求:可以考虑使用多线程或异步请求库,如concurrent.futuresasyncioaiohttp等,同时发送多个请求,从而加快爬取速度。

  2. 并行下载图片:可以考虑将图片下载的部分放入异步任务中,实现并行下载多张图片,提高下载速度。

 但是还不会

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python爬虫是一种能够自动化从网络上收集信息的程序。在本例中,我们将使用Python爬虫将彼岸网上的4k图片爬取下来,以供自己使用。 首先,我们需要导入必要的库。其中,requests库能够向网页发送请求,而re库则能够通过正则表达式在网页上查找所需的链接。 接着,我们需要分析彼岸网的网页结构。4k图片一般都是以页面形式呈现的,每页显示多张图片。在右下角有翻页按钮,通过更改翻页按钮的链接可以切换到目标页面。达到目标页面后,我们需要用re库找到每一张图片的链接并依次下载到本地。 最后,我们需要设置程序的自动化。一般情况下,爬虫程序都需要在一定的时间间隔内重复执行。这可以使用调度器schedule库实现。在设置程序自动化之后,每隔一段时间(比如每天)程序就会启动并自动下载彼岸网上的4k图片。 总之,Python爬虫是一种强大的自动化程序,可以方便地从网页上收集所需的信息。在下载彼岸网上的4k图片时,我们可以遵循一定的操作流程,使用Python编写一个高效的爬虫程序来完成任务。 ### 回答2: 彼岸网是一个专业的高清壁纸网站,提供了大量的精美1080P和4K分辨率的壁纸下载。为了快速下载这些壁纸,我们可以用Python编写一个爬虫程序来获取这些壁纸资源。 首先,我们需要安装所需的软件包。在Python中,我们可以使用requests、Beautiful Soup和re等库来完成这个任务。requests库是一个HTTP请求库,用于发出GET请求并获取响应,而BeautifulSoup库和re库用于从HTML页面中提取数据。 接下来,我们需要分析彼岸网站的页面结构,以便确定我们需要爬取的数据。通过打开任何一个4K壁纸页面,我们可以从HTML代码中确定我们需要爬取的内容,如图片的URL地址、标题和标签等。 然后,我们可以通过编写Python脚本来实现爬虫程序。这个脚本通过requests库发出GET请求,然后使用BeautifulSoup解析响应页面。我们可以通过BeautifulSoup的一些函数,如find()和find_all(),来查找我们需要的内容。然后我们可以使用正则表达式(re)库来匹配我们需要的下载链接。 最后,我们可以将获得的URL下载到本地。使用Python的requests库可以下载图片,可以使用urlopen函数获取每个图片的二进制数据,然后将其写入到本地文件系统中,即可实现图片的下载。 在Python爬虫编写过程中,需要注意法律法规。保证不侵犯版权,设置合理的访问频率,不影响网站正常运行。这是一个道德而又技术含量高的工作,需要我们认真对待。 ### 回答3: Python爬虫是一种自动化获取互联网数据的技术。彼岸网4k作为一个高清图片资源网站,储存了大量高清图片资源。如何使用Python爬虫程序获取这些图片并下载到本地呢?下面就为大家详细解答。 1. 安装Python环境 首先需要在本地电脑上安装好Python环境,可以到Python官网上下载并安装。安装完成后可以在命令行中输入python检查Python是否安装成功。如果成功安装,则会显示Python的版本号。 2. 安装必要的工具 在进行爬取之前,需要先安装一些必要的工具。其中包括beautifulsoup4、requests、selenium和webdriver等库和工具。这些都可以使用pip命令进行安装。例如,安装beautifulsoup4可以使用以下命令: pip install beautifulsoup4 安装完成后,可以在Python代码中引入这些库和工具。 3. 确定目标 在进行爬取之前,需要确定自己要爬取哪些内容。对于彼岸网4k而言,可以选择爬取图片、标题、标签等。其中,图片是最主要也是最吸引人的内容。因此,本文将以爬取图片为例。 4. 编写爬虫程序 代码如下: ``` import requests from bs4 import BeautifulSoup # 图片爬取函数 def download(url): res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') img_urls = soup.select('div.pic-box img') print('共找到'+str(len(img_urls))+'张图片') for i, img_url in enumerate(img_urls): img_url = img_url['src'] img = requests.get(img_url) with open(f'./img/{i}.jpg', 'wb') as f: f.write(img.content) print('已下载完成第'+str(i+1)+'张图片') # 程序入口 if __name__ == '__main__': url = 'http://pic.netbian.com/4kmeinv/index.html' download(url) ``` 爬取彼岸网4k图片时,需要构造url,通过requests库进行获取。获取到的html文本,通过BeautifulSoup库解析,找到源码中图片url所在的标签位置。最后,调用requests库中的get()方法将图片下载到本地。可以通过命令python 文件名.py执行程序,开始爬取。下载完毕后,可以在本地图片目录中查看下载的图片。 总结:Python爬虫程序可以帮助我们快速获取互联网上的数据。对于彼岸网4k而言,爬取高清图片是一项比较常见的需求。通过上述的方法,大家可以轻松地编写出Python爬虫程序,将彼岸网4k高清图片爬取到本地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑子不好真君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值