收集信息
最近想换点桌面壁纸了,通过观察网站 彼岸桌面图片的详情页。发现链接呈现一定规律,形如:
http://www.netbian.com/desk/23295.htm
通过构造不同编号的网址来达到访问不同图片,所以通过爬虫自动下载图片可行。
反爬虫协议
通过访问彼岸网的反爬虫协议,发现网站并没有禁止爬取图片,于是就写写代码,解放双手下载好看的壁纸了,也算是对之前学习的Python、爬虫知识进行回顾,温故知新。
构造图片详细页网址
不废话,上部分代码:
(ps:总代码在文章末贴出,感觉过程无聊可直接自取。)
urls = []
for i in range(10001,10100):
## 例:http://www.netbian.com/desk/9000-1920x1080.htm
url="http://www.netbian.com/desk/"+ str(i) + "-1920x1080.htm"
##print(url)
urls.append(url)
这里构造的url有些不同,在编号后面添加了**-1920x1080**的一个尺寸信息,是为了方便后面的处理。
爬虫试运行
贴出经典爬虫代码
import requests
url= "目标网址"
try:
kv={
'user-agent':'Mozilla/5.0'}
r = requests.get(url,headers=kv)
r.raise_for_status()
r.encoding=r.apparent_encoding
print(r.status_code)
##return r.text
except:
print("爬取失败")
输出200,就表示没有问题,将其封装为函数。
提取图片源地址
通过对详情页源代码的观察,找到图片源地址,形如:
http://www.netbian.com/desk/23295-1920x1080.htm
具有一定随机性,所以需要对每一个图片进行构造,本来一开始想用正则找到目标网址,奈何正则没学好,忘得一干二净。我是照搬了一个函数getPU()
def getPU(text):
st='img src="'
m=len(st)
i=0
n=len(text