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

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)
我想大声告诉你

En fait, je viens de l'essayer. La page n'a pas été chargée en xhr C'était déjà dans le code source de la page, puis une classe a été appelée pour charger les données dans une table.
Par exemple, les données sur la page d'accueil :

Ensuite, utilisez simplement la réextraction directement. Après avoir obtenu le texte, analysez-le simplement avec json.
Écrivez d'abord ici.
++++++++++++++++++++++++++++++++++++++++

Ensuite, ce site Web n'utilise pas xhr pour charger des données mais utilise js pour charger des données json et les analyser dynamiquement pour l'affichage. Une analyse spécifique nécessite une connaissance de js. Si vous le comprenez, vous pouvez essayer de l'analyser vous-même.

Je l'ai essayé.


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

给我你的怀抱

L'avantage d'utiliser cette combinaison est qu'elle est simple et violente, mais l'inconvénient est qu'elle est moins efficace.
Cela équivaut à ouvrir une page de chargement de navigateur que vous ne pouvez pas voir, puis à lire les résultats calculés.
Si vous débutez dans l'apprentissage des reptiles, je vous recommande ce livre sur les animaux intitulé Collecte de données sur le réseau Python.
Les instructions dont vous avez besoin se trouvent dans le chapitre sur la collecte de pages dynamiques.
Ce livre est très fin et très pratique.

巴扎黑

Je ne connais pas grand-chose à js ou json, et je viens de commencer à explorer. Après votre invite, j'ai vérifié à nouveau le code source et j'ai découvert qu'il y avait ces données dans defjson. Je ne comprends pas comment afficher les données dans json dans tbody. Je peux capturer ces données en utilisant read_html de pandas, mais les deux dernières colonnes seront perdues. Il semble que je doive d'abord regarder js et json

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal