Loading... 最近爱上了摄像,于是看了好多图片,找了很多网站,又想把它下载下来,所以就找回了很久以前写代码的手艺,抓取一下图片。下文仅给出一个实例。 # 查看网站 这里推荐一个高清壁纸网站[彼岸壁纸](http://www.netbian.com/ "彼岸壁纸")(http://www.netbian.com),可以免费下载。本次抓取仅实例抓取缩略图,不会对原图进行抓取。  ## 查看网页链接 进入网站后翻页,寻找网页规律 ``` http://www.netbian.com/index_1.htm http://www.netbian.com/index_2.htm http://www.netbian.com/index_3.htm ``` 其列表主要特征是按照1-n进行排序 ## 查找图片路径 通过查看网页源码,找到图片的地址,并且输出正则 *获取地址的方式有很多,这里用正则比较简单,就先用正则了* ``` <img src="(.*?)" alt="(.*?)" /> ```  # 代码编写 用到的第三方库 - requests - json - re - lxml - bs4 ## 实例代码 ``` import requests import re # 正则表达式 import json from bs4 import BeautifulSoup # BS from lxml import etree # xpath def get_one_page(url): response = requests.get(url) response.encoding = 'gbk' if response.status_code == 200: return response.text return None def down(): html = get_one_page(url) pattern = re.compile('<img src="(.*?)" alt="(.*?)" />', re.S) items = re.findall(pattern, html) x = 1 for item in items: img = 'http://pic.netbian.com' + item[0] title = item[1] print("正在下载第{0}张:{1}".format(x, title)) x = x + 1 r = requests.get(img) with open('D:\python\down\{}.png'.format(title), 'wb') as f: f.write(r.content) if __name__ == '__main__': # 入口 for i in range(2, 50): url = "http://pic.netbian.com/index_" + str(i) + ".html" print("正在下载第{0}页:{1}".format(i,url)) down() print("爬取完成") ``` 备注:本次代码是在win上写的,所以路径是‘\’,如果是mac或者linux则需要更换 ## 实际运行 代码运行后,我们会发现才了每一个图片的下载情况  在down文件夹中出现下载好的图片  # 结束语 仅限学习,切勿侵犯他方利益。 最后修改:2020 年 11 月 26 日 12 : 45 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付
3 条评论
买单号 买快递单号 买空包 代发选爱查www.aickd.com
OωO
学习; ;了