美文网首页
python如何获取百度搜索中的真实url

python如何获取百度搜索中的真实url

作者: libdream | 来源:发表于2018-12-07 13:45 被阅读0次

    在爬取百度搜索中的链接时,我们发现获取的链接都是经过百度加密过的,比如这样:


    image.png

    可以看到,获取的网址是这样的:

     https://www.baidu.com/link?url=eMmgypP19LcmUtjiK4xRzPv0rl5y-BauEr3Nwxi5dzudQFmccUTLsYhbH5IPJiu5&wd=&eqid=ebae21c60001c462000000055c0a021f
    

    观察上面的网址,发现结构可以分为3部分:

    https://www.baidu.com/link? + url=***** + &wd=&eqid=ebae21c60001c462000000055c0a021f
    

    第1部分是所有的百度搜索链接的头,第2部分是搜索结果的url加密部分,第3部分是搜索者id相关的数据,可以删除。删除第3部分后得到网址:

    https://www.baidu.com/link?url=eMmgypP19LcmUtjiK4xRzPv0rl5y-BauEr3Nwxi5dzudQFmccUTLsYhbH5IPJiu5
    

    上面这步很重要,如果带着第3部分去请求的话是得不到真实地址的

    将得到的网址复制到浏览器地址栏,发现可以正常打开,下面就可以获取搜索结果的真实url了。

    要获取真实网址其实很简单,只需要用到requests库,爬取一次该网址,然后通过返回的Response对象的url属性就可以获得真实的url了

    import requests
    url = 'https://www.baidu.com/link?url=eMmgypP19LcmUtjiK4xRzPv0rl5y-BauEr3Nwxi5dzudQFmccUTLsYhbH5IPJiu5'
    r = requests.get(url)
    print(r.url)  #真实url
    
    运行结果: image.png

    相关文章

      网友评论

          本文标题:python如何获取百度搜索中的真实url

          本文链接:https://www.haomeiwen.com/subject/yrrthqtx.html