Python百度检索获得真实的目的URL连接


Python百度检索真实连接获取

 

百度搜索结果分析

百度搜索一个关键词,找到匹配项后,不操作,F12查看

Python百度检索真实连接获取

元素代码如图:

Python百度检索真实连接获取

此时URL为:http://www.baidu.com/link?url=_vGyw9wg5jFARtZX-0wLt_gqg69-tPorHO8QzNu241KeHIzBMiTKPXo0i75QkX1J

POSTMan请求这个地址,直接返回的是目标页

Python百度检索真实连接获取

当我们在浏览器中 点击(左键或右键) 了这个连接后,发现这个连接会改变

Python百度检索真实连接获取

变成了:https://www.baidu.com/link?url=_vGyw9wg5jFARtZX-0wLt_gqg69-tPorHO8QzNu241KeHIzBMiTKPXo0i75QkX1J&wd=&eqid=9c019f650000ce82000000066163f6ac

POSTMAN请求结果如下:

Python百度检索真实连接获取

前后区别是:

点击前:

  • HTTP 协议
  • 只有一个URL参数
  • 请求连接直接会返回目标页面内容

点击后:

  • HTTPS 协议
  • 多了 wd 参数
  • 多了eqid 参数
  • 请求连接会先跳转中间页,然后再通过js代码跳转到目标页

虽然不知道什么用,在次记录一下

 

但是知道了这个规则,百度连接转换真实URL的时候,思路经更加清晰了

只获取URL参数,

Python 全选
# coding=utf-8
import requests
import re

# 百度检索中,百度URL转换成真实的目标URL


# URL转换
def convertURL(url):
    host = re.search(r"^[^?]+", url).group(0)
    url = re.search(r"url=[^&]+", url).group(0)
    return host + '?' + url


# 获得百度的目标URL
def getURL(baiduURL):
    _url = convertURL(baiduURL)
    header = requests.head(_url).headers
    local_url = header.get('location')
    if local_url is None:
        # print('没有找到local_url')
        return None

    # print('获得URL:', local_url)

    return local_url


url = 'http://www.baidu.com/link?url=vd-upvwgZW2OzLuCXRBsZFqxyKTAaDJW2TCCIwO108WMGe0PDD7FniRRLohwpsDL'
local_url = getURL(url)
print('URL:', url)
print('获得目标URL:', local_url)

url = 'https://www.baidu.com/link?url=sBq7Udr5bxCz-NbelLqCCvEDQngM7uMp7JIgg36DUpK&wd=&eqid=b30019460008ea95000000066163e29d'

# 测试
local_url = getURL(url)
print('URL:', url)
print('获得目标URL:', local_url)

# 输出

# URL: http://www.baidu.com/link?url=vd-upvwgZW2OzLuCXRBsZFqxyKTAaDJW2TCCIwO108WMGe0PDD7FniRRLohwpsDL
# 获得目标URL: http://www.vtradex.com/pro_oms.html
# URL: https://www.baidu.com/link?url=sBq7Udr5bxCz-NbelLqCCvEDQngM7uMp7JIgg36DUpK&wd=&eqid=b30019460008ea95000000066163e29d
# 获得目标URL: http://datatook.com/
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:Python 重构Print 日志记录
下一篇:Python VSCode调试的时候,代码中无法试用相对路径
评论列表

发表评论

评论内容
昵称:
关联文章

Python检索获得真实URL连接
获得地图静态图片
.NET 获得当前连接URL,Origin信息
地图AK获取
Python数组List检索 三种方法从数组List中检索出符合要求元素
搜索结果列表html元素分析
07、云物联网MQTT对接
Python连接MSSQL数据库pyodbc方案
微信授权连接URL生成类库
获取URL参数几种方式
Python使用SQL Server数据库
eChart:条形图label位置
使用 mitmproxy + python 做拦截代理
ag-grid 列检索-文本框
.NET获得IP地址
eChart:设置标题
eChart:报表容器
1.面向连接传输协议:TCP
python四种配置文件
Devexpress RibbonControl获得内容宽度

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码