Comment Python utilise Selenium ou PhantomJS pour explorer le contenu Web dynamique
黄舟
黄舟 2017-05-18 11:01:14
0
3
899

Si vous souhaitez utiliser Python pour effectuer des transactions boursières quantitatives, la première étape consiste à obtenir les données historiques de l'action. Visitez la page Web http://data.eastmoney.com/sto... Après avoir ouvert le code source de la page Web, vous ne pouvez pas voir les données dans le tableau. On dit qu'elles sont chargées à l'aide de la technologie ajax. J'ai vu sur Internet que Selenium et phantomJS pouvaient être utilisés pour obtenir ces contenus web dynamiques, mais je ne sais pas comment obtenir le code source complet. Veuillez donner quelques conseils d'experts

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous (3)
我想大声告诉你

事实上,我刚才试了一下,页面不是用xhr加载的,在页面的源代码中已经有了,然后调用了一个类把数据加载为一个table。
比如,首页的数据:

然后,提取就直接使用re提取就可以了,得到文本以后json解析就好了。
先写到这里。
+++++++++++++++++++++++++++++++++++++++++

然后,就是这个网站不使用xhr加载数据而是使用的js来加载json数据,动态解析来显示。具体分析需要用到js的知识,如果你了解也可以自己尝试解析。

我尝试了一下。

from urllib.parse import quote import time import requests url = "http://datainterface.eastmoney.com/EM_DataCenter/JS.aspx?type=FD&sty=TSTC&st={sortType}\ &sr={sortRule}&p={page}&ps={pageSize}&js=var {jsname}=(x){param}" params = { "sortType": 1, "sortRule": 1, "page": 2, "pageSize": 50, "jsname": "Aafdafgq", # 这里使用的是随机字符串,8位 "param": "&mkt=0&rt=" } params["param"] += str(int(time.time()/30)) # 当前时间 url = url.format(**params) url = quote(url, safe=":=/?&()") req = requests.get(url) req.text

    给我你的怀抱

    用这个组合 好处是简单暴力,坏处是效率较低。
    相当于打开一个你看不到的浏览器加载页面,再把运算好的结果读取。
    新人学爬虫的话 推荐 python网络数据采集 这本动物书。
    你需要的说明在采集动态页面那章。
    这书很薄 很实用。

      巴扎黑

      我对js和json都不太了解,刚刚爬虫入门。经过你的提示,我再查看了一下源码,发现在defjson里面有这些数据,不明白是怎样把json里的数据显示到tbody里面的。我用pandas的read_html可以抓到这些数据,但是最后两列会丢失。看来我得先去看看js和json

        Derniers téléchargements
        Plus>
        effets Web
        Code source du site Web
        Matériel du site Web
        Modèle frontal
        À propos de nous Clause de non-responsabilité Sitemap
        Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!