【wallhaven热门壁纸爬取】初学者习作(内含福利)
本帖最后由 slabber 于 2021-8-4 11:25 编辑最近研究python爬虫技术,一直觉得wallhaven这个网站的壁纸质量很高,所以尝试爬取了一下,运用比较基础的模块功能,轻喷……
说明:
1、headers根据自己浏览器的信息替换,找到headers方法可以百度如何获取user-agent即可;
2、整个代码只是运用了基础的requests, lxml中的etree模块,用pycharm编写,安装方式可以cmd进入命令符输入pip install XXXX,或者pycharm界面按下ctrl+alt+s进入设置界面然后选择interpreter点击加号安装模块;
3、我只爬取了网站toplist的首页,其他页面自行攻破。
import requests
from lxml import etree
import os
if not os.path.exists('./wallhaven热图'):
os.mkdir('./wallhaven热图')
if __name__ == "__main__":
headers = {
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36'
}
url = 'https://wallhaven.cc/toplist'
page_text = requests.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
li_list = tree.xpath('//*[@id="thumbs"]/section/ul/li')
for li in li_list:
detail_url = li.xpath('./figure/a/@href')
detail_page_text = requests.get(url=detail_url,headers=headers).text
tree2 = etree.HTML(detail_page_text)
img_src = tree2.xpath('//*[@id="wallpaper"]/@src')
img_name = tree2.xpath('//*[@id="wallpaper"]/@src').split('/')[-1]
img_path = 'wallhaven热图/'+img_name
img_data = requests.get(url=img_src,headers=headers).content
with open(img_path,'wb') as fp:
fp.write(img_data)
print(img_name,'下载成功!')
下载图片展示:
升级了一下 可以选择起始页面的…… 一共100多页 可以都一次性爬了 有会异步或者线程池的大佬可以指教一下 怎么更快速的下载!
import requests
from lxml import etree
import os
if __name__ == "__main__":
headers = {
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36'
}
url = 'https://wallhaven.cc/toplist?page=%d'
#指定起始页面
page_start = int(input('输入起始页码:'))
page_end = int(input('输入结束页码:'))
if not os.path.exists('./wallhaven热图'):
os.mkdir('./wallhaven热图')
for page in range(page_start,page_end+1):
print('正在下载第%d页图片'%page)
new_url = format(url % page)
page_text = requests.get(url=new_url,headers=headers).text
tree = etree.HTML(page_text)
li_list = tree.xpath('//*[@id="thumbs"]/section/ul/li')
for li in li_list:
detail_url = li.xpath('./figure/a/@href')
detail_page_text = requests.get(url=detail_url,headers=headers).text
tree2 = etree.HTML(detail_page_text)
img_src = tree2.xpath('//*[@id="wallpaper"]/@src')
img_name = tree2.xpath('//*[@id="wallpaper"]/@src').split('/')[-1]
img_path = 'wallhaven热图/'+img_name
img_data = requests.get(url=img_src,headers=headers).content
with open(img_path,'wb') as fp:
fp.write(img_data)
print(img_name,'下载成功!') xztyx 发表于 2021-8-4 12:27
求大佬弄个可以登陆可以搜索的撒~~
搜索无意义这个网站 都是英文 我补充了下可以选择起始页码的 一会添加进去 什么福利?
什么福利 啥福利啊 说清楚点啊~
:$qqq 同求福利{:1_893:}
啥福利啊 说清楚点啊~ 福利在哪儿? wu2_cgj 发表于 2021-8-4 10:22
什么福利?
下载完你就知道 wu2_cgj 发表于 2021-8-4 10:22
什么福利?
就是下载的图片…… 灰灰鼠精灵 发表于 2021-8-4 11:12
福利在哪儿?
重新上传了附件……
页:
[1]
2