V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jakeyfly
V2EX  ›  Python

最近突发其想想搞足球数据分析-----可是球探网的这种 windows,open(url) 如何获取其 URL

  •  
  •   jakeyfly · 2017-11-30 15:49:12 +08:00 · 4996 次点击
    这是一个创建于 2561 天前的主题,其中的信息可能已经有所发展或是发生改变。
    球探网上面进入某场 比赛的数据分析页面 其标签是这样的<a href="javascript:" onclick="analysis(1424203)" title="数据分析">析</a>


    onclick 点击触发 打开新标签


    chrome 是如何获取这个地止的啊 抓包看了半天 没明白 求大神指导
    想获取点数据作分析
    25 条回复    2017-12-03 14:59:28 +08:00
    GreatMartial
        1
    GreatMartial  
       2017-11-30 15:58:18 +08:00 via Android
    哈哈哈!这个我做过😄
    ooee2016
        2
    ooee2016  
       2017-11-30 16:00:22 +08:00
    'network' 标签里不是有 url 吗
    jakeyfly
        3
    jakeyfly  
    OP
       2017-11-30 17:01:21 +08:00
    @GreatMartial 大神 有经验传授吗 给跪了
    @ooee2016 没有的
    MiguelValentine
        4
    MiguelValentine  
       2017-11-30 17:14:33 +08:00
    Network 里勾选 Preeserve log
    annielong
        5
    annielong  
       2017-11-30 17:22:38 +08:00
    analysis 明显是个函数,直接追到处理结果进行组合,或者
    jakeyfly
        6
    jakeyfly  
    OP
       2017-11-30 18:00:57 +08:00
    @MiguelValentine 大神 这个我肯定知道啊 但是弹出的新标签 所有包我都 看过了。没有一个是接收地止的。原页面就完全没有动静 不明白是啥意思 我估计要去学 JS 了
    jakeyfly
        7
    jakeyfly  
    OP
       2017-11-30 18:02:38 +08:00
    @annielong 是啊 函数我都找到了

    function analysis(ID) {
    var theURL;
    try {
    if (Config.language == 0)
    theURL = "http://zq.win007.com/analysis/"; + ID + "cn.htm";
    else if (Config.language == 1)
    theURL = "http://zq.win007.com/analysis/"; + ID + ".htm";
    else
    theURL = "http://zq.win007.com/analysis/"; + ID + "sb.htm";
    }
    catch (e) {
    if (location.href.split('_').length == 2)
    theURL = "http://zq.win007.com/analysis/"; + ID + "cn.htm";
    else
    theURL = "http://zq.win007.com/analysis/"; + ID + ".htm";
    }
    window.open(theURL);

    可是 我是想知道 chrome 是如何接收到这个地止的 然后打开 的 我要抓这个包啊 就是抓不到啊
    anmaz
        8
    anmaz  
       2017-11-30 18:19:05 +08:00 via Android
    直接上 phontomjs
    jakeyfly
        9
    jakeyfly  
    OP
       2017-11-30 18:21:56 +08:00
    @anmaz 亲哥 我的设想是 百台机器分布式抓取啊 用模拟点击 不合适吧
    Hsinchu
        10
    Hsinchu  
       2017-11-30 18:32:02 +08:00 via Android
    @jakeyfly 新弹出的页面 F12 的 network 你当然看不到记录,因为 network 只有开着 F12 期间的请求才记录,你开 F12 时请求已经发出去了,你 F5 一下就能看到了。看你需求是想批量抓页面,那就在你自己的脚本里用它那个 analysis 函数把 url 算出来呗,不是 a 标签没法直接获取链接。
    jakeyfly
        11
    jakeyfly  
    OP
       2017-11-30 19:24:44 +08:00
    @Hsinchu 我有钩选那个弹新页面 就记录包的那个 就是打开新页面同时也开审查元素的 我找了两天了 确实不知道是那个东西传过来的 我 X
    jakeyfly
        12
    jakeyfly  
    OP
       2017-11-30 19:26:21 +08:00
    我感觉 楼歪了 我的本意是 这个是 ONCLICK 触发的连接 在初始页 无法找到连接去不了下一页 好多人都 说用模拟点击 可是 数据量巨大 要分布 要多线程 没研究过是不是合适 还是希望能获取去目标页面的连接 谢谢大家啦
    GreatMartial
        13
    GreatMartial  
       2017-11-30 20:02:22 +08:00
    @jakeyfly 把你的请求地址给一下吧。我之前是爬场次赔率,根据编号拼接出数据地址,再进行数据清洗。
    GreatMartial
        14
    GreatMartial  
       2017-11-30 20:04:17 +08:00
    @jakeyfly 那个 onclick 确实没法解析出数据地址的。
    dbw9580
        15
    dbw9580  
       2017-11-30 20:04:20 +08:00 via Android
    地址是在这个 analysis 函数里拼接出来的,没有经过网络请求。把它的逻辑看懂,不就知道要打开的地址了吗?
    Moker
        16
    Moker  
       2017-11-30 20:07:08 +08:00
    拿到 ID 去采集详情页.....以前公司买的球探的数据 就是有点小贵
    wangyongbo
        17
    wangyongbo  
       2017-11-30 20:18:02 +08:00
    @jakeyfly 这个函数看不懂吗? 就是字符串拼接一下,http://zq.win007.com/analysis/1424203cn.htm ? 对吧。把这个 js 代码改造成 python 代码。
    blacklee
        18
    blacklee  
       2017-11-30 22:14:05 +08:00
    这是一个完美的弄不清楚「我想要什么」的案例。
    想要的东西其实已经有人给出,然而自己却还在纠结一些其他的东西。

    题外不得不感叹一下,多年前的比赛 ID 还是 5 位 6 位的,没想到现在都已经 140W 的 7 位了。
    dbw9580
        19
    dbw9580  
       2017-11-30 22:42:08 +08:00 via Android
    @blacklee 我去看了,实际情况要比看上去的复杂。页面上这些 id 不是直接写在 HTML 元素里的,也是通过脚本动态加载的。但是在浏览器检查元素的时候看的的是已经加载完了之后的样子,而爬虫看到的是空白的页面。所以需要顺藤摸瓜去找那个动态加载的 api。
    betwinyou
        20
    betwinyou  
       2017-11-30 22:54:03 +08:00
    有点意思,学习了
    winglight2016
        21
    winglight2016  
       2017-12-01 11:38:44 +08:00
    @dbw9580 phantom 不是可以加载页面及 js 吗?全部加载完了再自己用 js 拼一下就出来了

    PS:不学习 js 是很难做网页抓取的
    a7a2
        22
    a7a2  
       2017-12-01 13:30:52 +08:00
    找这个网站拿数据我醉了。。。不专业。。。
    你的技术至少包含 libpcap 关键字才能拿到最接近第一时间的数据。。。
    如果你的数据来自于中文网站已经不专业了
    jakeyfly
        23
    jakeyfly  
    OP
       2017-12-03 14:56:58 +08:00
    @GreatMartial 如果无法解析地止 那只有构造 URL 了 这个有点烦人啊 他要是改了服务器 我要是没有发现 就会造成损失啦
    jakeyfly
        24
    jakeyfly  
    OP
       2017-12-03 14:58:39 +08:00
    @a7a2 我并不是要实时的数据啊 我是通过 几个时段的数据来使用我自己写的业务逻辑来分析 那些比赛是我需要的。
    jakeyfly
        25
    jakeyfly  
    OP
       2017-12-03 14:59:28 +08:00
    @wangyongbo 懂啊 我是想避免拼接来构造 URL 啊 这样很不妥啊 负面的影响太多了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4219 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:10 · PVG 12:10 · LAX 20:10 · JFK 23:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.