小编Ret*_*ec6的帖子

Wget:如何使 cookie 会话保持活动状态以进行递归或镜像下载(--keep-session-cookies 不起作用)

我正在尝试使用 wget 下载一个网站,但在克隆第一个网页后它不会保持会话处于活动状态,该网站具有登录名并使用 HTTPS,因此如果不是通过凭据,我将无法通过它进行导航。我设法使用 cURL 登录到服务器并将它的 PHPSESSIONID 保存到 cookie.txt 所以这个过程我正在做:

首先,我创建一个cookie.txt

wget --save-cookies=cookie.txt 
     --keep-session-cookies "https://huellas.dashboardtimes.com/login.php?user=MyUserName&password=MyPass"
     --delete-after
Run Code Online (Sandbox Code Playgroud)

没有--post-data给出,因为该网站使用 GET 方法进行身份验证(这已成功登录,但仅适用于第一页)。

进而:

wget --load-cookies=cookie.txt -m https://Website.wget.com/home
Run Code Online (Sandbox Code Playgroud)

此时,wget 克隆https://Website.wget.com/home在成功登录后返回代码 200 OK,但是当它完成 /home 并进入另一个模块时,例如https://Website.wget .com/contacts它失去了它的会话并将所有其他模块克隆为错误 - 404,返回代码为 302。我还尝试为命令提供一个包含几个 URL 的列表

wget --load-cookies=cookie.txt -m -i list.txt
Run Code Online (Sandbox Code Playgroud)

但我仍然得到相同的结果。-m选项中是否有可能导致此问题的内容?因为如果我不指定-m选项,它会下载列表中 URLS 的 HTML 文件,没有错误 404,但我需要的不仅仅是 HTML,所以我为什么要使用-m选项。

是否有解决方法或我遗漏了什么?

(如果有任何其他工具,例如 wget 可以用于此目的,我也想知道)。

感谢您的回答。

linux cookies https curl wget

5
推荐指数
0
解决办法
454
查看次数

useEffect 挂钩不等待异步依赖项

我使用 useEffect 钩子在包含 API 调用的异步函数返回一个对象数组之后实现一些逻辑,该对象数组是钩子的依赖项。

问题是钩子本身并没有等待数组更改来执行其中的逻辑,它只是执行即使availableSitesis still []:

const [availableSites, setAvailableSites] = useState([]);

useEffect(initialize, [getAxiosInstance])

async function initialize() {
    // ...
    const initPage = async () => {
      try {
        const response = await getAxiosInstance().get(GetObjects); // Api EndPoint
        if (response.data) {
          setAvailableSites(response.data); // data for availableSites
          const Secondresponse = await somePromise(); // Another API call thas lasts around 10 seconds
          if (response && response.status === 200) {
            // ...
          }
        }
      } catch {
        // ... …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

1
推荐指数
1
解决办法
1287
查看次数

标签 统计

cookies ×1

curl ×1

https ×1

linux ×1

react-hooks ×1

reactjs ×1

wget ×1