Re: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.Non sono un utente VB, ma sembra che dovrebbe funzionare in JMP usando 3 newHttpRequests.
Le tre sezioni del codice VB terminano con un ".send".
La prima sezione va a una pagina di accesso. Non sono sicuro del motivo per cui potrebbe essere necessario... non ti fornisce il cookie ma potrebbe essere necessario visitarlo prima.
La seconda sezione invia i post_data a un URL che ti fornirà un cookie che significa che hai effettuato l'accesso.
La httprequest di JMP potrebbe mantenere tali dati per te. Oppure potresti dover dire a httprequest di scriverlo su un file e quindi estrarlo dal file.
Il (2) ottiene il valore del cookie da una sorta di struttura VB.
La terza sezione utilizza l'URL per ottenere alcuni dati e fornisce il cookie come credenziali. JMP potrebbe farlo per te.
// 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: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.
Ho provato molte volte ma non c'è modo di accedere direttamente e scaricare i dati completi.
Ho trovato un codice Python su Internet, ma ancora non ha funzionato.

Re: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso 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: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.Questo va oltre lo scopo di questo forum. Forse il sito fornisce un'API per quello che vuoi fare.
Penso che il sito utilizzi javascript per verificare che tu abbia effettuato correttamente l'accesso.JMP non esegue javascript.
Il captcha potrebbe essere parte del problema e potrebbe richiedere l'interazione umana.
Se il nome utente o la password contengono caratteri speciali, sarà necessaria una sorta di codifica.
Il codice di errore 413 potrebbe significare che qualcos'altro non va.
Re: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.Per favore, perdona la mia insistenza.
Continuo a provare questo argomento.
Si è riscontrato che questo metodo può accedere tramite script e non viene visualizzato alcun messaggio di errore di accesso.
Ma ancora non analizzerò cosa c'è dentro.
Grazie!

Re: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso 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: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso 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: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.Sì, penso che il sito Web dipenda da JavaScript per parte della sua sicurezza. Penso che vorrai guardare l'altro post del blog sull'uso del selenio. In questo modo puoi eseguire lo script di un browser esistente che funziona da jmp.Re: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.Grazie Craig!
Vedo. Quindi è tutto.
Sfortunatamente, non ho Python installato sul mio computer e non ho installato Python da quando USO JMP.
Da questo solo esempio, sembra che VBA sia più facile di Python per ottenere i cookie per le pagine Web che devono essere loggate.

Re: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.E, se vuoi ancora guardarlo, 1F8B è la firma gzip (perché Accept-Encoding ha detto gzip, tra gli altri.) Potresti usare
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 Traduttore: " Nome utente o password mancanti "
Ma penso davvero che usare il selenio potrebbe essere una risposta migliore. Script del browser con Python Selenium mostra come eseguire uno script di accesso e sfogliare alcuni dati, caricandoli in una tabella di dati.
Re: A quale URL è necessario accedere e come ottenere i cookie e scaricare i dati tramite l'accesso JSL.Non funziona:
<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;
Ri: A quale URL è necessario accedere e come è possibile ottenere cookie e scaricare dati tramite l'accesso JSL.Cosa ha fatto? Qualcosa nella finestra del registro?
Mostra(dati);
Show(s<
Show(s<
Mostra(s<
Mostra(s<
Se hai un codice Python che funziona, perché non usarlo?
Usa il codice Python per creare un file .csv e importalo in JMP.
Puoi chiamarlo da JMP, sia con l'interfaccia Python che con RunProgram.
Stessa cosa con un programma VB per creare un file .csv e importarlo.
Ri: A quale URL è necessario accedere e come è possibile ottenere cookie e scaricare dati tramite l'accesso JSL.
Re: A quale URL è necessario accedere e come è possibile ottenere cookie e scaricare dati tramite l'accesso JSL.Script del browser con Python Selenium
Non sarà facile, ma è possibile. Fino a quando non ottieni un captcha che deve essere risolto.
A quale URL è necessario accedere e come è possibile ottenere cookie e scaricare dati tramite l'accesso JSL.Ciao a tutti!
Questo sito richiede i cookie per scaricare i dati completi. Come posso ottenere i cookie e scaricare i dati tramite il login JSL?
Grazie!
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 SubAutomazione e scriptingQualità e ingegneria di processofinestre