我有一个Rust项目,它使用了“reqwest”crate,并具有以下功能:
fn elem_html_vec(url: &String, element: &str, vec_elem: &mut Vec<String>) {
let response: String = get(url)
.expect("Could not load URL.")
.text()
.expect("Could not load text");
let document: scraper::Html = scraper::Html::parse_document(&response);
let parsed_elements: scraper::Selector = scraper::Selector::parse(element).unwrap();
for elem in document.select(&parsed_elements) {
vec_elem.push(elem.inner_html());
}
}
字符串
但是当我调用函数时,“url”参数(“https://twitter.com/Lions”)是一个指向网页的链接,将您重定向到另一个页面,我得到下面的错误消息。
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: reqwest::Error { kind: Redirect, url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("twitter.com")), port: None, path: "/Lions", query: None, fragment: None }, source: TooManyRedirects }', src/main.rs:79:37
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
型
我想让它得到它重定向到的最后一页的日期。我该怎么做呢?
2条答案
按热度按时间4zcjmb1e1#
https://twitter.com/Lions
重定向到https://twitter.com/i/flow/login?redirect_after_login=%2FLions
,并使用头set-cookie: guest_id=...
设置cookie。如果您没有在重定向的请求上设置cookie,则它会重定向到相同的位置,从而导致无限循环。您需要配置
reqwest
以使用cookie,可能使用cookie_store
方法。为此,您需要将reqwest::get
调用替换为使用ClientBuilder
创建的Client
。anauzrmj2#
我通过使用“reqwest”中的“重定向”特性找到了一个解决方案。下面是代码。
字符串