Используйте Монитор процессов Sysinternals . Настройте его для контроля процесса python.exe
для операций CreateFile
:
[/g1]
Затем запустите свой скрипт. В приведенном ниже примере я побежал:
>>> from ctypes import *
>>> CDLL('x')
Traceback (most recent call last):
File "", line 1, in
File "D:\dev\Python33x64\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
x.dll
не существует со следующим результатом в нижней части трассы, но обратите внимание, что любая отсутствующая зависимая DLL будет отображаться аналогично:
[/g2]
Попробуйте запрос cURL для Node.js , если вы используете Node.js в качестве сервера.
blockquote>const curl = new (require( 'curl-request' ))(); curl.get('https://www.google.com') .then(({statusCode, body, headers}) => { console.log(statusCode, body, headers) }) .catch((e) => { console.log(e); });
Как и в случае с другой веб-страницей / веб-приложением с платформой JS / JS, общепринятым методом связи с сервером является использование AJAX. Например, мы можем использовать Axios или fetch()
метод HTML5 Fetch API.
В React Axios является одной из наиболее часто используемых библиотек AJAX. Это независимая библиотека, созданная специально для HTTP-транзакций на стороне клиента. Пример использования Axios:
axios.post('https://your-server.com/your-path', {
'url': 'https://url-input-by-user.com'
})
.then(function (response) {
console.log(response);
//Do your action when success/get response from server
})
.catch(function (error) {
console.log(error);
//Error handling is here
});
Пример использования API fetch()
(должен реализовывать полизаполнение для IE и Edge):
fetch( 'https://your-server.com/your-path', {
method: "POST", // *GET, POST, PUT, DELETE, etc.
mode: "cors", // no-cors, cors, *same-origin
cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
credentials: "same-origin", // include, *same-origin, omit
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
redirect: "follow", // manual, *follow, error
referrer: "no-referrer", // no-referrer, *client
body: { 'url': 'https://url-input-by-user.com' }, // body data type must match "Content-Type" header
})
.then(response => response.json()); // parses response to JSON
[ 115] ИСПОЛЬЗОВАНИЕ «Browser Push data»:
Если процесс «Scrapping» выполняется в течение значительного периода времени, может подойти механизм «Browser Push Data». Потому что при использовании AJAX, он имеет тенденцию иметь «тайм-аут», когда это занимает слишком много времени. Используя механизм «Push data», это своего рода асинхронная связь между клиентом и сервером. Вы можете узнать больше об использовании "Websocket" и "Событие отправлено сервером" AKA "SSE" . Для справки: