gpt4 book ai didi

web-scraping - 使用 Cro 或 HTTP::UserAgent 时获取 url 的内容卡住

转载 作者:行者123 更新时间:2023-12-04 18:00:55 24 4
gpt4 key购买 nike

我要获取https://translate.google.cn的内容,但是,Cro::HTTP::ClientHTTP::UserAgent只是卡住了,WWW获取内容,我不知道为什么。
如果我更改 $urlhttps://perl6.org ,所有三个模块都可以正常工作:

my $url = "https://translate.google.cn";
use Cro::HTTP::Client;
my $resp = await Cro::HTTP::Client.new(
headers => [
User-agent => 'Cro'
]
).get($url);
say await $resp.body-text();



use HTTP::UserAgent;
my $ua = HTTP::UserAgent.new;
$ua.timeout = 30;
my $response = $ua.get($url);

if $response.is-success {
say $response.content;
} else {
die $response.status-line;
}
)

use WWW;
say get($url)

我错过了什么吗?谢谢你给我的建议。

最佳答案

对我来说 HTTP::UserAgent作品和Cro::HTTP::Client卡住。如果你想进一步调试,两个模块都有一个调试选项:
perl6 -MHTTP::UserAgent -e 'my $ua = HTTP::UserAgent.new(:debug); say $ua.get("https://translate.google.cn").content'CRO_TRACE=1 perl6 -MCro::HTTP::Client -e 'my $ua = Cro::HTTP::Client.new(); say $ua.get("https://translate.google.cn").result.body-text.result'WWW也为我工作。令人惊讶的是它对你有用,因为它由 HTTP::UserAgent 支持。 (这对你不起作用)。这是它的get向您展示它如何使用的方法HTTP::UserAgent :

sub get ($url, *%headers) is export(:DEFAULT, :extras) {
CATCH { .fail }
%headers<User-Agent> //= 'Rakudo WWW';
with HTTP::UserAgent.new.get: $url, |%headers {
.is-success or fail .&err;
.decoded-content
}
}

关于web-scraping - 使用 Cro 或 HTTP::UserAgent 时获取 url 的内容卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53802756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com