使用 rvest::read_html 时更改用户代理
Change user agent when using rvest::read_html
我可以使用 httr
包更改用户代理,并使用新的用户代理创建会话。但是,我不确定如何使用带有 read_html
函数的新用户代理来使用定义的用户代理获取 html 文档。
我已经看到错误报告 here,但不幸的是,我仍然不清楚在创建会话后如何让它工作,然后必须使用 read_html
函数。
作为编辑用户代理的示例,我有以下内容:
library(rvest)
link = "https://www.bbc.com/"
my_session = session(link)
my_session$response$request$options$useragent
user_agent_new = user_agent("Test User 1")
my_session2 = session(link, user_agent_new)
my_session2$response$request$options$useragent
如何在 rvest::read_html
调用中设置用户代理?
注意:rvest
和 xml2
在后台使用 httr
,因此我将在此处的回答中介绍 httr
。
如您在 post 中所述,使用 httr
包时动态设置用户代理非常简单。作为示例,我将使用上面列出的 link:
library(httr)
# Let's set user agent to a super common one
ua <- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
# Query webpage
bbc <- GET("https://www.bbc.com/",
user_agent(ua))
# Confirm it's actually used the desired user agent
bbc$request$options$useragent
#> [1] "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
现在您可以在使用 httr
默认值时比较用户代理值:
library(httr)
# Query webpage with default user agent
bbc <- GET("https://www.bbc.com/")
# Print default user agent value
bbc$request$options$useragent
#> [1] "libcurl/7.64.1 r-curl/4.3 httr/1.4.2"
显然,您可以将用户代理设置为任何您想要的。这是 common User Agents.
的列表
我可以使用 httr
包更改用户代理,并使用新的用户代理创建会话。但是,我不确定如何使用带有 read_html
函数的新用户代理来使用定义的用户代理获取 html 文档。
我已经看到错误报告 here,但不幸的是,我仍然不清楚在创建会话后如何让它工作,然后必须使用 read_html
函数。
作为编辑用户代理的示例,我有以下内容:
library(rvest)
link = "https://www.bbc.com/"
my_session = session(link)
my_session$response$request$options$useragent
user_agent_new = user_agent("Test User 1")
my_session2 = session(link, user_agent_new)
my_session2$response$request$options$useragent
如何在 rvest::read_html
调用中设置用户代理?
注意:rvest
和 xml2
在后台使用 httr
,因此我将在此处的回答中介绍 httr
。
如您在 post 中所述,使用 httr
包时动态设置用户代理非常简单。作为示例,我将使用上面列出的 link:
library(httr)
# Let's set user agent to a super common one
ua <- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
# Query webpage
bbc <- GET("https://www.bbc.com/",
user_agent(ua))
# Confirm it's actually used the desired user agent
bbc$request$options$useragent
#> [1] "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
现在您可以在使用 httr
默认值时比较用户代理值:
library(httr)
# Query webpage with default user agent
bbc <- GET("https://www.bbc.com/")
# Print default user agent value
bbc$request$options$useragent
#> [1] "libcurl/7.64.1 r-curl/4.3 httr/1.4.2"
显然,您可以将用户代理设置为任何您想要的。这是 common User Agents.
的列表