在用Python爬取百度搜索的内容时,发现百度搜索的url很是的长,每每会跟一大段的参数,但其实不少参数都是没有必要的,如一样是搜索java关键字,能够经过 http://www.baidu.com/s?wd=java
如此简单的URL来获取,而下面这个超级复杂的URL也是一样进行了关键字java的搜索:html
http://www.baidu.com/s?wd=java&rsv_spt=1&rsv_iqid=0xd3c8c51900052eb3&issp=1&f=8 &rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&oq=python%20org&inputT=801 &rsv_t=8810tNAXi7Yc2PivScHthQ7bBz%2B4eIBHvrdmB59u%2FlLVYrhnyyTg1%2FYJzQM9EAEgSPn5 &rsv_pq=8f0a85f900051202&rsv_sug3=15&rsv_sug2=0&rsv_sug7=000&rsv_sug4=801&rsv_sug=2
那么后面的那么多的参数有什么用呢?java
wd (WorD)
查询关键字,就是你要搜索的内容。python
rn (Record Number)
搜索结果页每页显示的数目,默认为10,最大能够设置为50浏览器
pn (Page Number)
显示结果的页数,缺省为0,其它页面须要每页递增rn,如当rn为默认值时,第三页的pn应为20。markdown
ie (Input Encoding)
查询关键字的编码格式,默认为gb2312,即为简体中文测试
tn
提交的搜索请求的来源,咱们常常能够看到不少网站上都有嵌入了百度的搜索框,这个参数能够肯定当前的搜索是来自哪一个网站的。以下面的URL就是经过www.hao123.com网站首页的百度搜索框搜索获得的:网站
https://www.baidu.com/s?word=java&tn=sitehao123&ie=utf-8
ui
提交搜索请求的来源站点,这是百度与免费软件合做时的利益来源,举例来讲咱们使用的一些免费浏览器中所提供的百度搜索时,URL地址中都带有tn=内容,tn=后面的内容就是百度联盟的帐号。如:Firefox的tn=suvion_dg(tn=suvion_4_dg),傲游的tn=myie2dg,The World的tn=suvion_4_pg,只要你使用了这些带有tn=的搜索,只要点击了其中的广告,提供该软件的浏览器就会从中赚取利益。搜索结果有个例外,当tn=baidulocal时,你能够获得一个无竞价无广告的百度搜索结果.编码
注:咱们能够看到不少参数其实都是缩写,如wd用word也是能够的url
rsv_bp
这是表示了是百度网页上的哪个搜索框,如经过百度首页中间的搜索框进行搜索时,该值为0,在搜索结果页上面的搜索框进行搜索时为1。
rsv_spt
这个参数具体含义不是很清楚,通过测试能够看出来登陆了百度帐号且在首页进行搜索时会有这个参数,且值为1,若是没有登陆或登陆后在搜索结果页搜索时不会出现这个参数。网上查找了一些资料,感受比较靠谱的是这表示首页搜索类型,1表示新版百度首页搜索(先要登陆百度账号),2表示百度实时热点搜索(先要登陆百度账号),3表示传统百度首页搜索。
cl
这个参数是提交的搜索类型,如搜索网页时为3,搜索新闻时为2
oq
这个关键词网上有些帖子说是搜索下拉栏相关的,但根据个人测试,这个参数如今好像就仅仅表明上次的搜索关键字。
还有不少参数如rsv_**这些参数的意义不是很明确,此外上面的参数测试可能也不是很全面,理解可能也有误差,若有错误,欢迎交流。
si
在限定的域名中搜索,好比想在本站内搜索可以使用参数si=www.wfshui.com,要使这个参数有效必须结合ct参数一块儿使用:ct=2097152;
标签:
原文地址:http://blog.csdn.net/u013291394/article/details/50444369