少年你渴望力量吗???
看着枯燥的黑色背景写代码你枯燥吗???
为了解决大家的烦恼,我来了!!!
看着枯燥无味的黑色/白色/高亮Pycharm主题颜色,写代码都不舒服,于是乎找了个插件可以更换Pycharm已经IDEA的背景的;但又苦于没有高清好看的背景,于是又写了个小爬虫来下载了点壁纸。
先贴上更换后的壁纸以及爬虫源码吧!
这些操作都是非常的简单的。下面来逐步教学。
爬虫
这里我就随便找了个高清壁纸网站:彼岸桌面
首先找到我们电脑的User-Agent
然后复制下我们的网址,当然我们不可能只下载一页的壁纸,肯定是要翻页的。
我们可以点到第二页,第三页可以发现其规律:
ok,现在URL和User-Agent都找到了,可以对网页进行解析了,这里我们用xpath解析,不懂xpath的先看一下这个文章:python爬虫之xpath解析(极简实战),这里不细讲了。
可以的话把这个也看了:手把手教你写爬虫
首先定位到需要爬取的图片的URL:
点击第二张可以发现其在li之前都是一样的,之后只有src也就是这张图片的url不一样
我们要提取的就是这个src里的URL。
下面来对其解析:
import requests
from lxml import etree
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'}
url = "http://www.netbian.com/index_1.htm"
page_test=requests.get(url=url,headers=headers).text
tree=etree.HTML(page_test)
li_list=tree.xpath('//*[@id="main"]/div[3]/ul/li')
for li in li_list:
urlss = li.xpath('./a/img/@src')
urls = "".join(urlss)
if urls =='':
continue
这边提取出来的urlss是list类型的,我们要把他编程str类型的,所以用了下面那句urls = "".join(urlss)
这样就提取出该页所有图片的URL了,其中有一个很特殊,也就是每页的第三张图片是广告,我们没办法解析出他的URL,因此我们用continue
跳过。
下一步就是保存这些图片了,很简单,解析这个网页,返回数据,选择我们要保存的位置,保存:
s = requests.Session()
response = s.get(url=urls, headers=headers)
content = response.content
with open(path+'/' + '{}.jpg'.format(i), 'wb') as f:
f.write(content)
print("正在爬取第{}张图片".format(i))
下一步就是翻页了,简单的很,for循环就完了,这里我封装成了函数。
import requests
from lxml import etree
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'}
i = 0
def bizhi(path,n):
url = "http://www.netbian.com/index_{}.htm".format(n)
page_test=requests.get(url=url,headers=headers).text
tree=etree.HTML(page_test)
li_list=tree.xpath('//*[@id="main"]/div[3]/ul/li')
for li in li_list:
urlss = li.xpath('./a/img/@src')
urls = "".join(urlss)
global i
i += 1
if urls =='':
continue
print(urls)
s = requests.Session()
response = s.get(url=urls, headers=headers)
content = response.content
with open(path+'/' + '{}.jpg'.format(i), 'wb') as f:
f.write(content)
print("正在爬取第{}张图片".format(i))
更换背景
方法一
可以在这里下一个这个插件
我的中文插件搜一下Chinese就出来了。
在这里可以手动随机更换,也可以关闭。
方法二
补充
突然发现上面哪个不是高清的,壁纸咱肯定得要高清的啊,(其实高清的比上面那个简单)。
不想写过程了,自己看看就能看懂,这个也是找规律,等想写的时候再补上详细教程吧~~
import requests
from lxml import etree
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'}
i = 0
def bizhi(path,num):
for n in range(num):
url = "http://www.netbian.com/desk/{}.htm".format(22610+n)
page_test=requests.get(url=url,headers=headers).text
tree=etree.HTML(page_test)
li_list=tree.xpath('//*[@id="main"]/div[3]/div/p/a/img/@src')
li = "".join(li_list)
global i
i += 1
if li =='':
continue
print(li)
s = requests.Session()
response = s.get(url=li, headers=headers)
content = response.content
with open(path+'/' + '{}.jpg'.format(i), 'wb') as f:
f.write(content)
print("正在爬取第{}张图片".format(i))
path = r"C:\Users\Administrator\Pictures\Camera Roll"
bizhi(path,100)
再次更新
这里专门对风景这一类型下载。
具体思想不说,自己先对比着看吧,等想起来了再写~
import requests
from lxml import etree
import os
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363'}
i = 0
def bizhi(path,n):
url = "http://www.netbian.com/fengjing/index_{}.htm".format(n)
page_test=requests.get(url=url,headers=headers).text
tree=etree.HTML(page_test)
li_list=tree.xpath('//*[@id="main"]/div[3]/ul/li')
#print(li_list)
for li in li_list:
urlss = li.xpath('./a/@href')
#print(urlss)
urls = "http://www.netbian.com"+"".join(urlss)
print(urls)
page_test1 = requests.get(url=urls, headers=headers).text
tree1 = etree.HTML(page_test1)
img_url = tree1.xpath('//*[@id="main"]/div[3]/div/p/a/img/@src')
img_url = "".join(img_url)
print(img_url)
global i
i += 1
if img_url =='':
continue
s = requests.Session()
response = s.get(url=img_url, headers=headers)
content = response.content
with open(path+'/' + '{}.jpg'.format(i), 'wb') as f:
f.write(content)
print("正在爬取第{}张图片".format(i))
path = r"F:\lzpython\爬虫\风景"
if not os.path.exists(path):
#如果不存在就自己生成一个
os.mkdir(path)
for y in range(1,13):
bizhi(path,y)
当然,不光风景,把最上面那个URL换成美女的,就是下面这个
url = "http://www.netbian.com/e/search/result/index.php?page={}&searchid=54".format(n)
嗯,然后运行,一样跑