介绍
这篇文章主要介绍python如何爬取壁纸网站,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
本次爬虫用到的网址是:
http://www.netbian.com/index.htm彼岸桌面。里面有很多的好看壁纸,而且都是可以下载高清无损的,还比较不错,所以我就拿这个网站练练手。
作为一个初学者,刚开始的时候,无论的代码的质量如何,总之代码只要能够被正确完整的运行那就很能够让自己开心的,如同我们的游戏一样,能在短时间内得到正向的反馈,我们就会更有兴趣去玩。
学习也是如此,只要我们能够在短期内得到学习带来的反馈,那么我们的对于学习的欲望也是强烈的。
作为一个菜鸡,能够完整的完整此次爬虫程序的编写,那便是一个最大的收的货,但其实我在此次过程中的收获远不止此。
好的代码其实应该具有以下特性
- <李>
能够满足最关键的需求
李> <李>容易理解
李> <李>有充分的注释
李> <李>使用规范的命名
李> <李>没有明显的安全问题
李> <李>经过充分的测试
就以充分的测试为例,经常写代码的就应该知道,尽管多数时候你的代码没有错误,但那仅仅说明只是大多数情况下是稳定的,但是在某些条件下就会出错(达到出错条件,存在逻辑问题的时候等)。这是肯定的。至于什么原因,不同的代码有不同的原因。如果代码程序都是一次就能完善的,那么我们使用的软件的软件就不会经常更新了。其他其中的道理就不一一道说了,
久而自知
好的代码一般具有5大的特性
1。便于维护
2。可复用
3。可扩展
4。强灵活性
5。健壮性
经过我的代码运行我发现时间复杂度比较大,因此这是我将要改进的地方,但也不止于此。也有很多利用得不合理的地方,至于存在的不足的地方就待我慢慢提升改进吧!
路过的大佬欢迎留下您宝贵的代码修改意见,
完整代码如下
import 操作系统 import bs4 import 再保险 import 时间 import 请求 得到bs4 import  BeautifulSoup def getHTMLText (url,标题): “““才能向目标服务器发起请求并返回响应“““ 尝试才能: ,,,r =, requests.get (url=url,标题=标题) ,,,r.encoding =r.apparent_encoding ,,,soup =, BeautifulSoup (r.text,“html.parser") ,,,return 汤 除了才能: ,,,return ““ def CreateFolder (): “““才能创建存储数据文件夹“““ flag 才能=,真的 while 才能;flag ==, 1: ,,,file =,输入(“请输入保存数据文件夹的名称:“) ,,,if not os.path.exists(文件): ,,,,,os.mkdir(文件) ,,,,,flag =False ,,,: ,,,,,印刷(& # 39;该文件已存在,请重新输入& # 39;) ,,,,,flag =,真的 #,才能os.path.abspath(文件),获取文件夹的绝对路径 path 才能=,os.path.abspath(文件),+,“\ \”; return 才能;路径 def fillUnivList (ulist,,汤): “““才能获取每一张图片的原图页面“““ #才能,[0]使得获得的ul是,& lt; class & # 39; bs4.BeautifulSoup& # 39;祝辞,类型 div 才能=,soup.find_all (& # 39; div # 39;,, & # 39;列表# 39;)[0] for 才能;a 拷贝div(& # 39;一个# 39;): ,,,if isinstance (a, bs4.element.Tag): ,,,,,hr =, a.attrs [& # 39; href # 39;】 ,,,,,href =, re.findall(" # 39;/桌子/(1 - 9)\ d {4} . htm # 39;,,人力资源) ,,,,,if bool (href),==,真的: ,,,,,,,ulist.append (href [0]) return ulist才能 def DownloadPicture (left_url、列表、路径): for 才能;right 拷贝列表: ,,,url =, left_url +,正确的 ,,,r =, requests.get (url=url,超时=10) ,,,r.encoding =r.apparent_encoding ,,,soup =, BeautifulSoup (r.text,“html.parser") ,,,tag =, soup.find_all (“p") ,,,#,获取img标签的alt属性,给保存图片命名 ,,,name [0]=,标签.a.img.attrs[& # 39;内容# 39;] ,,,img_name =, name +,“.jpg" ,,,#,获取图片的信息 ,,,img_src [0]=,标签.a.img.attrs [& # 39; src # 39;】 ,,,试一试: ,,,,,img_data =, requests.get (url=img_src) ,,,除了: ,,,,,继续 ,,,img_path =, path + img_name ,,,with 开放(img_path & # 39; wb # 39;), as 外交政策: ,,,,,fp.write (img_data.content) ,,,print (img_name,,,,, * * * * * *下载完成!“) def PageNumurl (url): num 才能=,int(输入(“请输入爬取所到的页码数:“)) for 才能小姐:拷贝范围(2,num + 1): ,,,u =,“http://www.netbian.com/index_", +, str (i), +,“.htm" ,,,urls.append (u) return 才能;url if __name__ ==,“__main__": 时间=uinfo 才能;[] left_url =,才能“http://www.netbian.com" urls 才能=,(“http://www.netbian.com/index.htm") headers 才能=,{ null null null null null null null null null null null null null null null null null null nullpython如何爬取壁纸网站