【发布时间】:2021-04-12 12:28:26
【问题描述】:
我想从以下网站抓取一张表:https://www.katastar.hr
要按照我想要的,请打开检查,而不是单击网络。 现在,当您打开站点时,您可以看到有一个 URL: https://oss.uredjenazemlja.hr/rest/katHr/lrInstitutions/position?id=2432593&status=1332094865186&x=undefined&y=undefined
问题是每次打开网站时 id 和 status 都不一样。 当每次都有不同的 GET 查询时,如何抓取上述请求的输出(这是一个 json,即一个表)?
我会给出可重现的例子,但没有什么特别的我可以尝试的。我应该从主页开始,但我不知道如何进行:
headers <- c(
"Accept" = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding' = "gzip, deflate, br",
'Accept-Language' = 'hr-HR,hr;q=0.9,en-US;q=0.8,en;q=0.7',
"Cache-Control" = "max-age=0",
"Connection" = "keep-alive",
"DNT" = "1",
"Host" = "www.katastar.hr",
"If-Modified-Since" = "Mon, 22 Mar 2021 13:39:38 GMT",
"Referer" = "https://www.google.com/",
"sec-ch-ua" = '"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',
"sec-ch-ua-mobile" = "?0",
"Sec-Fetch-Dest" = "document",
"Sec-Fetch-Mode" = "navigate",
"Sec-Fetch-Site" = "same-origin",
"Sec-Fetch-User" = "?1",
"Upgrade-Insecure-Requests" = "1",
"User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
)
p <- httr::GET(
"https://www.katastar.hr/",
add_headers(headers))
httr::cookies(p)
代码可以在R和python中。
【问题讨论】:
-
有足够的信息来理解问题。我怀疑它们是生成的,但只有 1 或 2 个源 js 脚本。
-
嗨@Qharr,是否有可能以某种方式执行JavaScript并获取状态和ID?我想这是在服务器端自动完成的?
标签: python r web-scraping python-requests httr