自从两个月前说要学习爬虫开始,我其实做了好多准备了,只是开始的有点晚了吧。希望后面的进度能够变的快一点。
我是从视频学习开始的,学习的是北理工的嵩天的课,里面讲了很多爬虫基础的知识,例如最常用的一些python的库,包括Requests、BeautifulSoup库等。
使用这些库就能实现我们想要做的一些基本的功能,包括爬取一些简单的网站的内容,requests库的功能是我觉得最实用的,只依靠这样一个库我就可以实现解析一个URL,获得网页里的内容,还可以判断在连接URL时是否出现了ERR,并且可以修正网页内容的编码,剩下的应该就只是分析网页的内容,获取自己想要的东西了,这是需要做的第一步吧。
另外一个库是BeautifulSoup库,利用这个库我可以获得HTML格式的文本里面的标签以及标签里的内容,可以说这一基础的部分是我对HTML的解析所必不可少的,利用这个库我可以用另外一种方法实现对HTML文本中我所想要的东西的获取。
然后应该是RE库,为了弄懂一个正则库,还是费了我不少功夫的,我想这个时间也是应该花的吧,正则并不是完全只适合于python的,他还能用在其他的语言上。
我觉得直接去学习这样一些库是效率很低的事情吧。我尝试去找一些事情去做,利用我在做事过程中遇到的困难,同时为了解决问题而去网络上寻找解决办法,这一过程更像是学习的过程,更能提高我的技能。所以我大概做了两件事。大概算是拿不出手的事吧。
第一件事是爬取百度的图片,也就是百度图片,百度图片在搜索完之后返回的是一个json变量,我需要把这个json变量转化成字典变量,连接存储在字典的“img”里面,在“img”里面的objURL,取到这个连接之后,就可以利用urllib.request.urlretrieve下载图片,这个方法需要几个参数,分别是连接和保存的位置和文件名,或者可以说合起来是一个文件名吧。这里面需要做很多try except的事情,具体的话还算是比较简单吧。全部的代码不算长,有一些细节是我之前没弄好的。
然后第二件事就是模拟登陆。
这之前我先尝试了另一个东西,主要原因是我在这一页面上看到了这一篇文章,然后我觉得我没做过,所以我就去学习了一下。
主要内容是爬取网易云音乐上的音乐歌单名称,以及歌单的作者还有各种地址等等。
网易云音乐跟百度图片的有点像,就是并不是通过简单的requests.get就能够获取他的html内容的,所以文章一开始还是有介绍说应该用什么样的方式去寻找我们想要的东西,至少从表面是没办法看到他到底是在哪里的。
所以最后实际上还是有先分析了F12的NETWORK的内容,找到了请求的真正连接,更重要的是作者发现了我们的歌单是在一个document里面的,所以我们最后需要在F12里面找到有一个document的部分,这里面也显示了这是一个playlist,所以我们可以确定这就是我们要的歌单,我 没有从F12里找到这个请求的连接,但是从作者的那边复制的那个是可以用的,我感到很奇怪。
另外一点是尽管找到了链接,仅仅使用requets.get方法并不能直接获取这个html文件,我后面还用了BeautifulSoup库的解析了一下,保证了最后可以用Soup的库去解析这个html文件,最后是用了Soup的select方法,select方法可以查找标签,id,属性等等,可以是同一级的也可以不是同一级的,不过后面我应该试一下不是同一级的是什么样的状态。