Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Je ne suis pas un utilisateur VB, mais il semble que cela devrait fonctionner dans JMP en utilisant 3 newHttpRequests.
Les trois sections du code VB se terminent par un ".send".
La première section va à une page de connexion. Je ne sais pas pourquoi cela pourrait être nécessaire... il ne vous donne pas le cookie, mais vous devrez peut-être le visiter en premier.
La deuxième section envoie les post_data à une URL qui vous donnera un cookie qui signifie que vous êtes connecté.
La requête http de JMP peut conserver ces données pour vous. Ou vous devrez peut-être dire à httprequest de l'écrire dans un fichier, puis de le récupérer du fichier.
Le (2) obtient la valeur du cookie à partir d'une sorte de structure VB.
La troisième section utilise l'URL pour obtenir des données et fournit le cookie comme identifiant. JMP peut le faire pour vous.
// get a cookie
try(deletefile("$temp/cookie.txt"));
s = New HTTP Request(
URL( "http://httpbin.org/cookies/set/aaa/bbb" ),
Method( "GET" ),
Headers( {"Accept: application/json", "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0"} ),
cookiefile("$temp/cookie.txt")
);
data = s << Send;
show(loadtextfile("$temp/cookie.txt"));
// send a cookie
s = New HTTP Request(
URL( "http://httpbin.org/cookies" ),
Method( "GET" ),
Headers( {
"Accept: application/json",
"Cookie: PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1",
"User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0"
} )
);
data = s << Send;
Show( data ); // note the aaa cookie was persisted
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.
J'ai essayé plusieurs fois, mais il n'y a aucun moyen de se connecter directement et de télécharger les données complètes.
J'ai trouvé un code Python sur Internet, mais cela n'a toujours pas fonctionné.

Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.class AllcontentSpider(scrapy.Spider):
name = 'allcontent'
headers = {
'Host': 'www.jisilu.cn', 'Connection': 'keep-alive', 'Pragma': 'no-cache',
'Cache-Control': 'no-cache', 'Accept': 'application/json,text/javascript,*/*;q=0.01',
'Origin': 'https://www.jisilu.cn', 'X-Requested-With': 'XMLHttpRequest',
'User-Agent': 'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/67.0.3396.99Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
'Referer': 'https://www.jisilu.cn/login/',
'Accept-Encoding': 'gzip,deflate,br',
'Accept-Language': 'zh,en;q=0.9,en-US;q=0.8'
}
def start_requests(self):
login_url = 'https://www.jisilu.cn/login/'
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip,deflate,br', 'Accept-Language': 'zh,en;q=0.9,en-US;q=0.8',
'Cache-Control': 'no-cache', 'Connection': 'keep-alive',
'Host': 'www.jisilu.cn', 'Pragma': 'no-cache', 'Referer': 'https://www.jisilu.cn/',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/67.0.3396.99Safari/537.36'}
yield Request(url=login_url, headers=headers, callback=self.login,dont_filter=True)
def login(self, response):
url = 'https://www.jisilu.cn/account/ajax/login_process/'
data = {
'return_url': 'https://www.jisilu.cn/',
'user_name': config.username,
'password': config.password,
'net_auto_login': '1',
'_post_type': 'ajax',
}
yield FormRequest(
url=url,
headers=self.headers,
formdata=data,
callback=self.parse,
dont_filter=True
)
def parse(self, response):
for i in range(1,3726):
focus_url = 'https://www.jisilu.cn/home/explore/sort_type-new__day-0__page-{}'.format(i)
yield Request(url=focus_url, headers=self.headers, callback=self.parse_page,dont_filter=True)
def parse_page(self, response):
nodes = response.xpath('//div[@class="aw-question-list"]/div')
for node in nodes:
each_url=node.xpath('.//h4/a/@href').extract_first()
yield Request(url=each_url,headers=self.headers,callback=self.parse_item,dont_filter=True)
def parse_item(self,response):
item = JslItem()
title = response.xpath('//div[@class="aw-mod-head"]/h1/text()').extract_first()
s = response.xpath('//div[@class="aw-question-detail-txt markitup-box"]').xpath('string(.)').extract_first()
ret = re.findall('(.*?)\.donate_user_avatar', s, re.S)Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Cela dépasse le cadre de ce forum. Peut-être que le site fournit une API pour ce que vous voulez faire.
Je pense que le site utilise javascript pour aider à vérifier que vous êtes correctement connecté.JMP n'exécute pas le javascript.
Le captcha peut faire partie du problème et peut nécessiter une interaction humaine.
Si le nom d'utilisateur ou le mot de passe contient des caractères spéciaux, il faudra alors une sorte d'encodage.
Le code d'erreur 413 peut signifier que quelque chose d'autre ne va pas.
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Veuillez pardonner mon insistance.
Je continue à essayer ce sujet.
Il s'avère que cette méthode peut se connecter via un script et qu'il n'y a pas d'invite d'échec de connexion.
Mais je n'analyserai toujours pas ce qu'il y a dedans.
Merci!

Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.
Char To Blob( "~1F~8B~08~00~00~00~00~00~00~03~ABVJ~CEOIU~B2214~D6Q~CA-NW~B2Rz~BEg~D7~D3~0D~13~9FOY~F1~ACc~FB~D3~09~BD~CF:~A6=~ED_~FCd~F7~12%~1D~A5~94~C4~92D%~ABj~A5~E4~C4~82~92~E4~0C 3~AF4'~A7~B6~16~00x&~D1~03E~00~00~00", "ascii~hex" )
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.
kbz_newcookie=1; kbzw__user_login=7Obd08_P1ebax9aXwZKsmLCuprCTpYKvpuXK7N_u0ejF1dSeq8WhwtappqDaotqYq8TYqNStwtSapKusy6rNp8euxa-YrqXW2cXS1qCasZypl6iZmLKgzaLOvp_G5OPi2OPDpZalp5OguNnP2Ojs3Jm6y4Ksj6iyk8-wx5eoopWq6dzjx83G2cLc7JCllKunqJ-ZlMKqyq7Do5PkytvGlMDazOTboIK5yenm4N2Qp5miqaOcspyrkKeRr5fG2cfR092oqpywmqqY; kbzw__Session=mnijj070u2h083ms7ouuah9b22; Hm_lvt_164fe01b1433a19b507595a43bf58262=1652962728,1652966374,1653359409,1653375276; Hm_lpvt_164fe01b1433a19b507595a43bf58262=1653375282
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Oui, je pense que le site Web dépend de JavaScript pour une partie de sa sécurité. Je pense que vous voudrez regarder l'autre article de blog sur l'utilisation de Selenium. De cette façon, vous pouvez scripter un navigateur existant qui fonctionne à partir de jmp.Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Et, si vous voulez toujours le regarder, 1F8B est la signature gzip (car Accept-Encoding a dit gzip, entre autres.) Vous pouvez utiliser
blob=Char To Blob( "~1F~8B~08~00~00~00~00~00~00~03~ABVJ~CEOIU~B2214~D6Q~CA-NW~B2Rz~BEg~D7~D3~0D~13~9FOY~F1~ACc~FB~D3~09~BD~CF:~A6=~ED_~FCd~F7~12%~1D~A5~94~C4~92D%~ABj~A5~E4~C4~82~92~E4~0C 3~AF4'~A7~B6~16~00x&~D1~03E~00~00~00", "ascii~hex" );
write(blobtochar(Gzip Uncompress(blob)))
{"code":413,"msg":"缺少用户名或口令","data":{"captcha":null}}
Google Translate: " Nom d'utilisateur ou mot de passe manquant "
Mais je pense vraiment que l'utilisation de Selenium pourrait être une meilleure réponse. Script de navigateur avec Python Selenium montre comment créer un script de connexion et parcourir certaines données, en les chargeant dans une table de données.
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Merci Craig!
Je vois. Alors c'est tout.
Malheureusement, Python n'est pas installé sur mon ordinateur et je n'ai pas installé Python depuis USING JMP.
À partir de cet exemple seul, il semble que VBA soit plus facile que Python pour obtenir des cookies pour les pages Web qui doivent être connectées.

Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Ça marche pas :
<BR />s = New HTTP Request( URL( "https://www.jisilu.cn/login" ), Method( "get" ) );
data = s << Send;
username = "lala";
password = "jmp";
jj = "return_url=http://www.jisilu.cn/&user_name=" || username || "&password=" || password || "&net_auto_login=1&_post_type=ajax";
h = [=> ];
h["Content-Type"] = "application/json";
h["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36";
h["Content-Type"] = "application/x-www-form-urlencoded; charset=UTF-8";
s = New HTTP Request( URL( "https://www.jisilu.cn/webapi/account/login_process/" ), Method( "POST" ), JSON( jj ), Headers( h ) );
data1 = s << Send;
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Qu'est-ce que ça a fait? Quelque chose dans la fenêtre du journal ?
Afficher (données);
Afficher(s<
Afficher(s<
Afficher(s<
Afficher(s<
Si vous avez du code Python qui fonctionne, pourquoi ne pas l'utiliser ?
Utilisez le code Python pour créer un fichier .csv et importez-le dans JMP.
Vous pouvez l'appeler depuis JMP, soit avec l'interface Python, soit avec RunProgram.
Même chose avec un programme VB pour créer un fichier .csv et l'importer.
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.
Re : À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Script de navigateur avec Python Selenium
Ce ne sera pas facile, mais c'est possible. Jusqu'à ce que vous obteniez un captcha qui doit être résolu.
À quelle URL vous devez vous connecter et comment vous pouvez obtenir des cookies et télécharger des données via la connexion JSL.Bonjour à tous!
Ce site nécessite des cookies pour télécharger les données complètes. Comment puis-je obtenir des cookies et télécharger des données via la connexion JSL ?
Merci!
VBA
Sub Post()
Dim User_agent, Response_Text, username, password, cookie, json
username = [d1]: password = [f1]
User_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36"
Post_data = "return_url=https%3A%2F%2Fwww.jisilu.cn%2Fdata%2Fcbnew%2F&user_name=" & jslencode(username) & "&password=" & jslencode(password) & "&aes=1&auto_login=0"
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "get", "https://www.jisilu.cn/login/", False
.setrequestheader "User-Agent", User_agent
.send
.Open "post", "https://www.jisilu.cn/webapi/account/login_process/", False
.setrequestheader "User-Agent", User_agent
.setrequestheader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
.send (Post_data)
cookie = Split(.getallresponseheaders, "Set-Cookie: ")(2)
.Open "get", "https://www.jisilu.cn/data/cbnew/detail_hist/" & ([b1] & ""), False
.setrequestheader "User-Agent", User_agent
.setrequestheader "cookie", cookie
.send "fprice=&tprice=&curr_iss_amt=&volume=&svolume=&premium_rt=&ytm_rt=&rating_cd=&is_search=N&market_cd%5B%5D=shmb&market_cd%5B%5D=shkc&market_cd%5B%5D=szmb&market_cd%5B%5D=szcy&btype=&listed=Y&qflag=N&sw_cd=&bond_ids=&rp=50&page=1"
Response_Text = .responsetext
Set json = JsonConverter.ParseJson(Response_Text)
End With
End SubAutomatisation et scriptIngénierie de la qualité et des procédésles fenêtres