Python爬取图片参考该博客:https://www.cnblogs.com/dearvee/p/6558571.html
有现成的不要自己写,不要重复造轮子,考虑到该博文中采用的是利用网站前端js现成的脚本,如果网站稍微有所更改就不行了,如果不是前端专业人员我还是建议使用正则表达式匹配”objURL”后面的图片链接。
最终代码如下:
import requests
import json
import urllib
import random
from win32 import win32gui, win32print
from win32.lib import win32con
def getImag(category,start,path,width,height):
#&width=’+str(width)+’&height=’+str(height)
imgs = requests.get(‘http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=’+category+’&tag=%E5%85%A8%E9%83%A8&start=’+str(start)
+’&len=9&width=’+str(width)+’&height=’+str(height))
jd = json.loads(imgs.text)
jd = jd[‘all_items’]
imgs_url = []
for j in jd:
imgs_url.append(j[‘bthumbUrl’])
m = 1
for img_url in imgs_url:
urllib.request.urlretrieve(img_url,path+str(m)+’.jpg’)
m = m + 1
hDC = win32gui.GetDC(0)
w = win32print.GetDeviceCaps(hDC, win32con.DESKTOPHORZRES)
h = win32print.GetDeviceCaps(hDC, win32con.DESKTOPVERTRES)
print(w,h)
n=random.randint(0,3000)
print(n)
getImag(‘壁纸’,n,‘image/’,w,h)
内容就是在当前文件位置的image文件夹下按照规定大小缓存图片,但是多运行几次你会发现程序运行后没有效果,特别是getImage函数,原因是现在的大网站都有很成熟的反爬和安全机制,同一个ip地址短时间多次登录会被拒绝,而且像url这种自己定义的&输入值会被定义为不安全的而被拒绝访问,我们只能另辟蹊径。
算了,想来这样做出的软件最后也只是一个普通的GUI,虽然可以通过一次性的爬虫将图片缓存在文件夹中,并把它展现出来,也可以通过添加文件来扩充本机图片库,但和实际生产环境还是有所差别,看来这个想法也是不行的,我还是老老实实学习前端vue技术栈吧,毕竟我那清华毕业的表姐和我那211毕业转行程序员的老哥都搞得前端,以后不整这些花里唿哨的了,专心把前端技术搞搞,等哪天不想干了转行程序猿,感觉js也不比这啥c++,python,java难的。就说说这些年自学编程的感悟吧,17年3月开始自学的,本科学的电子通信,毕业以后到现在都在国企混日子,工资不低,但上班时间很死,领导臭脾气,也可能是我个性太强也不愿意改,嫌不自由。刚开始对计算机一窍不通,除了本科计算机二级C语言学的不错,C++都没去了解。Python学了大半年,基本上语法都会了,但是对计算机软件的基础还是一窍不通,就特别想知道网站,app这些东西是咋回事,于是18年刚开始从网上了解到html+Css,然后百度到后台主要有asp和php,php用的比较广,于是自己就把asp拿来学,记得还花了两星期学了access。。。那是我第一次了解数据库,我回头看看18年自己还是第一次了解数据库和服务器。。。19年开始觉得要做点啥,于是把php搭建网站试了一下,了解了一下mysql的基本使用,甚至花了一个月时间去考了python的计算机二级证。。。但linux没怎么学,因为觉得装虚拟机太麻烦,主要是自学,没事干,也没压力,不知道干嘛,如果我没有这份工作我估计我可能在家学个半年就可以找到编程工作了吧。。。20年开始,看单位有个计算机硕士写了一个定位软件,于是我也想检验一下自己实力,就用python也写了一个,其实就花了2周时间,但后来因为涉及单位业务我把它撤掉了,无非是python+pyqt的图形化程序,因为当时就很急,不知道为什么急,就觉得自己和真正的程序员有差距,啥都想快速学会,所以都没细抠,就能运行就行,当时我哥(当时在广州某公司编程)说我代码学的慢,我就跟他急,我说你靠这个吃饭,每天可以写10个小时,我每天要上班,周末还加班,每天学的时间就2个小时,你真以为比我厉害?20年又开始看java,当时就是恨不得啥都学会,但是没有什么目的性,最大的问题就是对这个行业迷茫,不知道该学啥,目标一大就不知道干嘛了,前端后端app桌面运用都想学,连C#都想学。。21年上半年还看了javaEE,ssm但都是满足于跑通例子,下半年想着应该找点项目做,可是看看程序猿客栈,码市,都是些天马行空的例子,比如2000块做一个类似微信的东西,也可能是我学的太宽泛太杂,导致自己前端后端能力不精。但就是这种半桶水的感觉难受,于是硬着头皮找个项目来啃,结果就是发现撞墙了。之前喜欢写博客有一个原因就是想评估自己的水平,通过csdn排名。。。前一阵子csdn客服还让我花钱考试,进行c1认证。。。大概要500块。。。钱我有的是,一顿饭吃个300块自助餐不带眨眼的,但是这个我觉得不值。。。以后再也不会迷茫了,专心学习前端。今晚看了一个论坛很有感受,给所有自学编程找工作的小伙伴,我觉得很不错。如下:
https://www.ju1.com.cn/news-id-4961.html
虽然我自己搞电子工程的,不算在职程序员,但我的表姐是北航毕业,清华硕士,之前在深圳的一线大厂工作,年限40w,现在去大学当教员。我的哥哥是211毕业,本科地理信息,之前在广州某研究院工作。我现在找的对象也是211毕业,本科通信工程,现在从事软件测试。我单位的副厨师长也是学软件的,不过是大专毕业,原来搞运维的,找不到工作来当厨师。我自认为也是计算机行业有点见闻的,给所有迷茫的自学的想当程序员的兄弟姐妹几个建议:
1、 想找这一行工作的人,搞清楚自己的目的,不要啥都想学,前端后端找一个,建议前端,根据我表姐那获取的情报,现在一线企业都用VUE(js框架)。等自己去学了就会知道要学啥,不要纠结于哪门语言。再建议一次,从js(javascript)开始学起,学好了学vue。
2、 真正零基础的人(本科连C都没学过的人),学起来会很痛苦,但你去搬砖也会很痛苦。
3、 编程不是什么高大上的工作,只是一个普通的工作,我曾经觉得程序员很牛逼是因为感觉他们打破了阶层,可以通过实力,比如黑客,成为社会资源的掌控者,但现在发现,黑客和网络工程师也只是程序员的一种,只是技术方向有些不一样,我们单位多次接触别的国企的网络工程师,他们只是技术方向有些不同罢了,但是对于没什么基础找工作的同志还是别往这方面发展,毕竟不收政府支持的黑客行为是违法的,这也就意味着你没有了练手的机会了。
4、 最后安利一波这个网页:https://www.ju1.com.cn/news-id-4961.html,
最后安利一波,0基础->js->vue,这是目前最火的,就业最容易的。
C/C++:比较老的编程语言,国企喜欢用,一般人要学精到找工作不容易,对非科班不友好。
Php:后端语言,也是比较老,小公司用。
javaEE(jsp):java传统后端语言,搞后端必学。
Asp:已淘汰,asp.net在微软仍然支持,新手别碰,有门槛。
CSS/html:必学,不用特意去学,干啥都离不开它,随便买本js的书少不了这两货。
Python:脚本语言,功能强大,不好找工作,爬虫是犯法的,后端框架地位不如java(spring全家桶)
Java:后端必学,现在的主流框架spring全家桶(spring,springmvc,springcloud)
Js:前端必学,网络上有jquey,angular,react,vue等,前线传来情报,现在就vue靠谱。
以后再发可能就都是js的博客了吧,编程也就那么回事了。