python桌面爬虫_Python爬虫 爬取彼岸桌面壁纸 netbian 1920x1080

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

之前我们对使用Python语言进行网页爬取已经比较熟悉了。今天我们再对所用到的知识进行一下巩固,爬取彼岸桌面壁纸。之所以选择这个网站,是因为他的图片壁纸都是高分辨率的,非常适合作为桌面壁纸使用。网站是这样子滴

页面分析

1、通过一直点击 下一页 可以看到网站内的全部套图

2、通过爬取单个页面,可以获取到套图的首页地址

3、单个套图内图片上右键 -> 查看元素 即可拿到当前图片的地址。方法还是比较简单。

这样,就可以得到我们想要的资源。

关键源码

构造每个page的URL

# 构造page url

i = 2

while i < 10:# 限制爬取页数

url = 'http://www.netbian.com/meinv/index_' + str(i) + '.htm' # http://www.netbian.com/meinv/index_2.htm

print(url)

self.urlManager.add_new_url(url)

i = i + 1

xpath解析单个套图

def parseArtical(self, html_content):

# 存放数据

res_data = set()

ht = etree.HTML(html_content)

htmls = ht.xpath('//div[@id="main"]/div[@class="list"]/ul/li/a[@target="_blank"]')

for i in range(len(htmls)):

node = htmls[i]

url = 'http://www.netbian.com' + str(node.xpath('./@href')[0])

# print(url+' '+title+' '+cover_pic_url)

artical = Artical()

artical.url = url

res_data.add(artical)

return res_data

下载图片资源并保存

def dealObj(self):

self.logger.debug('begin dealObj')

artical = self.__blockList.remove()

if artical is not None:

if not self.__oldUrlList.contains(artical.url):

# 处理artical

# print(artical.url)

html_content=self.downloader.download_text(artical.url, headers, 'gbk')

ht = etree.HTML(html_content)

imgs= ht.xpath('//div[@id="main"]/div/div/p/a[@target="_blank"]/img')

for i in range(len(imgs)):

node = imgs[i]

url=node.xpath('./@src')[0]

alt=node.xpath('./@alt')[0]

# 创建要保存的目录

root = 'F:/netbian/'

path=root+alt.strip()+'.jpg'

data = HtmlDownloader().download_bin(url,headers)

if data is not None:

fpath = path

with open(fpath, 'wb') as f:

f.write(data)

f.close()

self.logger.info('下载图片成功:' + path)

else:

self.logger.info('下载图片失败:'+path)

self.__oldUrlList.add(artical.url)

结果展示

可以看到,图片都是1920x1080的分辨率,制作精美非常养眼,用作桌面壁纸非常适合。

总结

大家是不是已经学会了呢?非常简单。如果还有什么不懂的,欢迎联系小白我。

不过大家一定不要频繁去下载,据说会给服务器带来压力,会封帐号,以后就不能查看了。

最后提醒大家,一点要以学习为重,小白我下载到的所有图片已删除,希望大家多多学习,多做有意义的事情,谢谢大家。

获取完整源码,欢迎关注 80后老吴

想要获取精美图片壁纸也可以找小白我,谢谢观看。

本文地址:https://blog.csdn.net/wy_51131/article/details/110211099

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值