(学习爬虫前建议先去了解一下前端的知识,不要求很熟悉,差不多入门即可学习爬虫,如果有不了解的,我也会补充个一些小知识.)
(了解一些前端的知识对于学习爬虫有很大的帮助.)
这边还是先说一下,作者使用pycharm,推荐这个软件,因为这个文本编译器,有很多优秀的功能,对于新手也是非常友好的。(以后如果工作,可能是写python的程序员,用到这个软件的频率也是很高的。)
————————————————————————————————————————————————————————————————
question: 为什么我们编写爬虫就可以获取网页里的各种数据,代码 ?
我们使用浏览器上网,来获取网页,从而来获得我们想要的内容,
而我们编写爬虫,其实就是模拟浏览器上网,来获取网页中我们想要的内容。
requests 模块:
requests 模块是爬虫的最重要的部分之一,我们通过这个模块,来获取网页的数据,
像我们比如说,要获取某个网页的网页源码,或者是要爬取B站的某个up主的粉丝数,
或者你为了能够在一些网站白嫖某些小说,就用到了requests模块,
(注:为了获取网页的数据,requests模块并不是唯一的,在python中还有urllib模块,
也可以获取网页数据,但是urllib模块相对比较老,且不比requests模块方便,所以作者在这边选择requests模块。)
一点前端知识:
http的请求类型有很多种,我们写爬虫时主要是用到post和get这两种。(其他的也有用,暂时不做介绍)
简单说一下,暂时就先知道get可以直接获取网页的内容,
但是有些网页的加载,需要用户输入参数才能动态加载出来,所以就比较需要post,它可以携带一些参数,从而返回我们想要的内容。
在导入requests模块后,我们就可以使用里面的对象来实现我们的要求。
requests.get(url="...",headers=...):这个函数可以返回我们想要的数据,不过返回的是一个对象,我们要自己定义个对象来承接,然后可以将其重构成我们想要的格式。
requests.post(url="...",headers=...,params=...):这个跟get差不多,区别是后面params携带的是你要的参数。(比如你要做一个翻译器,params就可以是你要翻译的内容。)
url就是你要爬取的网址,像headers的话,就是用来包装你的爬虫,让你的爬虫伪装成浏览器,(因为大部分的网站,会有反爬机制,他不想让爬虫来爬取自己的内容,所以我们就需要包装一下我们的爬虫。)这样就可以成功爬取网页。
这里介绍一种常见的伪装方法:UA伪装,顾名思义,就是用户引擎伪装。这样可以让网站认为,你是一台电脑,而不是一个爬虫。
方法:
随便打开一个网页,摁F12,也就是java的调试工具,然后点击上面的【网络】这个键。
然后刷新你的网页,在你的调试工具网络那边左下角就会有这些出现,
接下来就是随便点击一个,在他的右边,就会出现一堆内容,先不用管,直接拉到最底下,你就会找到一个叫做【"User-Agent"】的东西。
然后就是复制到你的代码里面用字典进行包装了。
示意如下:
然后就可以用进你的代码里面了。
一般来说,爬虫的步骤,可以概括为,指定url,获取网页内容,解析网页内容,最后进行存储。然后比如你要做一些特定需求的爬虫,也是在这些步骤之上,做些变化而已。
在自己电脑的终端输入"pip install requests"即可成功安装requests包。
(记得自己写,这边贴作者代码,还有就是这边爬取这个搜狗的代码,不需要用到headers包装。)