大家好,今天小编来为大家解答好4K壁纸网站源码分享这个问题,4k壁纸下载网站很多人还不知道,现在让我们一起来看看吧!
Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰。学好爬虫技能,可为后续的大数据分析、挖掘、机器学习等提供重要的数据源。无私分享全套Python爬虫资料,私信“学习”免费领取哦~~
环境准备
requests:通过http请求获取页面lxml:是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高BeautifulSoup4:可以从HTML或XML文件中提取数据
在终端中分别输入以下pip命令,安装它们
python-mpipinstallbeautifulsoup4\npython-mpipinstalllxml\npython-mpipinstallrequests
具体实现思路
利用Python的urllib模块获取网页的全部内容
利用Python的re模块进行网页正则分析,找到目标壁纸
利用Python的urllib模块进行壁纸下载,保存至某一特定文件夹
将该文件夹设置成壁纸,可以实现系统壁纸每天自动更新哦
RequestsHeaders里参数含义
User-Agent:这里面存放浏览器的信息。如果后台设计者验证这个User-Agent参数是否合法,不让带Python字样的User-Agent访问,这样就起到了反爬虫的作用。这是一个最简单的,最常用的反爬虫手段。Referer:这个参数也可以用于反爬虫,它表示这个请求是从哪发出的。如果后台设计者,验证这个参数,对于不是从这个地址跳转过来的请求一律禁止访问,这样就也起到了反爬虫的作用。authorization:这个参数是基于AAA模型中的身份验证信息允许访问一种资源的行为。在我们用浏览器访问的时候,服务器会为访问者分配这个用户ID。如果后台设计者,验证这个参数,对于没有用户ID的请求一律禁止访问,这样就又起到了反爬虫的作用。
提取HTTP代理IP
自定义选择提取格式,ip数量,支持协议、端口等参数生成API链接,调用HTTPGET请求即可返回所需的IP结果*可以直接按照以下格式组装所需的API
代码实现
设置全局变量
index=&39;爬取图片的间隔时间\nfirstDir=&39;存放网站分类子页面的信息
获取页面筛选后的内容列表
url:该网页的url
select:选择器(与CSS中的选择器无缝对接,我很喜欢,定位到HTML中相应的元素)
返回一个列表
defscreen(url,select):\nhtml=requests.get(url=url,headers=UserAgent.get_headers())39;gbk&39;lxml&将分类子页面信息存放在字典中\ndefinit_classification():\nurl=index\nselect=&header>div.head>ul>li:nth-child(1)>div>a&39;href&获取的是相对地址\ntext=c.string39;4k壁纸&4k壁纸,因权限问题无法爬取,直接跳过\ncontinue\nsecondDir=firstDir+&39;+text分类子页面url\nglobalclassificationDict\nclassificationDict[text]={\n&39;:secondDir,\n&39;:url\n}
定位图片并下载
39;href&39;http://pic.netbian.com/&过滤图片广告\ncontinue\n\n39;http://&有极个别图片不提供正确的相对地址\nurl=href\nelse:\nurl=index+href\nselect=&maindiv.endpagediv.picdiv.pic-downa&39;无此图片,爬取失败&39;href&第二次跳转\nurl=index+href\n\n39;div39;\nlink=screen(url,select)\nif(link==[]):\nprint(url+&34;)\ncontinue\nname=link[0].get(&39;).replace(&39;,&39;).replace(&39;,&39;).replace(&39;,&39;).replace(&39;,&39;).replace(&39;,&39;).replace(&39;,&39;).replace(&39;,&39;).replace(&34;&39;&39;<&39;&39;>&39;&输出下载图片的文件名\nsrc=link[0].get(&39;)\nif(requests.get(src).status_code==404):\nprint(url+&39;)\nprint()\ncontinue\nprint()\ndownload(src,name,path)\ntime.sleep(interval)
39;/&39;.jpg&若文件名重复\npath=path.split(&34;)[0]+str(random.randint(2,17))+&39;+path.split(&34;)[1]\nwithopen(path,&39;)aspic:\nforchunkinresponse.iter_content(128):\npic.write(chunk)
写在最后
如果你处于想学python爬虫或者正在学习python爬虫,python爬虫的教程不少了吧,但是是最新的吗?说不定你学的可能是两年前人家就学过的内容,在这小编分享一波2020最新的python爬虫全套教程,免费分享给大家!获取方式:私信小编“学习”,即可免费获取!附赠爬虫代理ip哦~~
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!
