前言
最近刚学会Python爬虫(不会的看这边,这篇优秀的文章是我自己写的),爬虫使用了BeautifulSoup,那能不能不用BeautifulSoup来爬虫呢?我们来看一下。
开发者工具
我在以前的文章里讲过开发者工具的用法,不过它还有其它的功能,我这里以谷歌浏览器举例。
在浏览器内Ctrl+Shift+I或右键点击网页任意位置并选择“检查”(其它浏览器可能会不同),打开开发者工具:
接下来Network --> All --> 刷新界面:
下面的一堆东西会不一样,不要管。
它的作用是不停跟踪网站在做什么,我们可以通过它来找到网页用的API。
比如百度翻译会使用API来完成翻译部分,我们看到的翻译网页会向百度翻译API发送参数,如翻译语言,翻译内容等,然后API会返回翻译之后的内容,百度翻译再把内容显示出来。
网址参数
同理,我们可以利用API获取CSDN上用户的信息,如参与问答数、文章数等。
但在这之前,我们需要知道一样东西,叫做网址参数。
什么是网址参数呢?我来举一个例子:
比如百度搜索,它是怎么利用我们每次搜索的内容来改变网址的呢?难道是把每一个搜索内容都写一个单独的网址?这是不可能的。那么这时候,网址参数就起到作用了。
来看一下下面的两个使用百度搜索不同内容的网址:
https://www.baidu.com/s?tn=02003390_43_hao_pg&isource=infinity&iname=baidu&itype=web&ie=utf-8&wd=csdn
https://www.baidu.com/s?tn=02003390_43_hao_pg&isource=infinity&iname=baidu&itype=web&ie=utf-8&wd=python
它们有什么共同点,又有什么不同呢?
可以看到,两个网址的前面都是“https://www.baidu.com/s”,然后是一个问号?
,问号后面用&
分隔着一堆东西。
这堆东西就是网址参数。
我们以上面iname=baidu
这个参数为例,iname就是参数的名字,baidu就是参数的内容。
在上面的两个网址中,唯一不同的参数就是