我试图从这个网站的超链接中提取URL:https://riwayat-file-covid-19-dki-jakarta-jakartagis.hub.arcgis.com/
我使用了以下Python代码:
import requests
from bs4 import BeautifulSoup
url = "https://riwayat-file-covid-19-dki-jakarta-jakartagis.hub.arcgis.com/"
req = requests.get(url, headers)
soup = BeautifulSoup(req.content, 'html.parser')
print(soup.prettify())
links = soup.find_all('a')
for link in links:
if "href" in link.attrs:
print(str(link.attrs['href'])+"\n")
问题是这段代码没有返回任何URL
链接由javascript代码动态生成,数据可以在下面的结构中找到
因此,您需要获取这个
script
元素并解析window.__SITE
的值您无法解析它,因为数据是动态加载的。如下图所示,下载HTML源代码时,写入页面的HTML数据实际上并不存在。JavaScript随后解析
window.__SITE
变量并从中提取数据:但是,我们可以在Python中复制这一点。下载网页后:
您可以使用
re
(regex)提取编码页源:之后,您可以使用
urllib
对文本进行URL解码,并使用json
解析JSON字符串数据:然后,您可以解析JSON树以获取HTML源数据:
此时,您可以使用自己的代码解析HTML:
如果你把它们放在一起,这里是最后的脚本:
相关问题 更多 >
编程相关推荐