我的目標是從該站點獲取資料:https ://www.insee.fr/fr/recherche?q=Emploi-Population active en 2018&taille=20&debut=0 ,尤其是不同專案的 id 鏈接。
我知道 GET 函式不起作用,因為它是動態的,需要由 javascript 處理(與Web Scraping 動態網頁 Python相同)。因此,我通過瀏覽器的檢查器模式獲取資訊,并找到了帶有 url 的 POST 查詢。
這是一個可復制的示例:
library(httr)
body <- list(q="Emploi-Population active en 2018",
start="0",
sortFields=data.frame(field="score",order="desc"),
filters=data.frame(NULL),
rows="50",
facetsQuery=data.frame(NULL))
TMP <- httr::POST(url = "http://www.insee.fr/fr/solr/consultation?q=Emploi-Population active en 2018",
body = body,
config = config(http_version=1.1),
encode = "json",verbose())
請注意,ai 必須放置 http 而不是 https,因為否則我什么也得不到(我的代理已正確配置并且 rstudio 可以連接到互聯網)。
我得到的只是一個不錯的 500 錯誤。我想念什么的任何想法?
uj5u.com熱心網友回復:
您可以更改q引數并將其從您的網址中洗掉。我會使用 https 并洗掉您的配置行以避免 curl 獲取錯誤。但是,以下適用于回傳 100 個結果的內容仍然有效。
library(httr)
body <- list(
q = "Emploi-Population active en 2018",
start = "0",
sortFields = data.frame(field = "score", order = "desc"),
rows = "100"
)
TMP <- httr::POST(
url = "http://www.insee.fr/fr/solr/consultation",
body = body,
config = config(http_version = 1.1),
encode = "json", verbose()
)
data <- fromJSON(content(TMP, type = "text"))
print(data$documents$titre)
uj5u.com熱心網友回復:
我發現將 json 作為字串傳遞效果很好:
library(httr)
json <- paste0('{"q":"Emploi-Population active en 2018 ",',
'"start":"0","sortFields":[{"field":"score","order":"desc"}],',
'"filters":[],"rows":"20","facetsQuery":[]}')
url <- paste0('https://www.insee.fr/fr/solr/consultation?q=Emploi-Population',
' active en 2018 ')
res <- POST(url, body = json, content_type_json())
output <- content(res)
現在output是一個龐大的串列,但這里例如是檔案標題:
sapply(output$documents, function(x) x$titre)
#> [1] "Emploi-Population active en 2018"
#> [2] "Emploi – Population active"
#> [3] "Dossier complet"
#> [4] "Base du dossier complet"
#> [5] "Emploi-Population active en 2017"
#> [6] "Comparateur de territoire"
#> [7] "Emploi – Population active"
#> [8] "L'essentiel sur... les entreprises"
#> [9] "Emploi - population active en 2014"
#> [10] "Population active"
#> [11] "Emploi salarié et non salarié par activité"
#> [12] "évolution de l'emploi"
#> [13] "Logements, individus, activité, mobilités scolaires et professionnelles, migrations résidentielles en 2018"
#> [14] "Emploi selon le sexe et l’age"
#> [15] "Statut d’emploi et type de contrat selon le sexe et l’age"
#> [16] "Sous-emploi selon le sexe et l’age"
#> [17] "Emploi salarié par secteur"
#> [18] "Fiche - Ch?mage"
#> [19] "Emploi-Activité en 2018"
#> [20] "Activité professionnelle des individus : lieu de travail localisé à la zone d'emploi en 2017"
由reprex 包于 2022-05-31 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/485038.html
上一篇:使用Beautifulsoup對動態內容進行網頁抓取
下一篇:將資料轉換成json格式
