我正在抓取一个网站,它的script标签包含以下代码:
<script type="text/javascript">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('set', 'content_group1', 'World');
gtag('set', 'content_group2', 'AFP');
gtag('config', 'UA-40396753-1', {
'custom_map': {"dimension6":"Id","dimension1":"Category","dimension3":"Author","dimension5":"PublishedDate"}
});
gtag('event', 'custom', {"Id":"news\/1696246","Category":"World","Categories":"World","Author":"AFP-119","Authors":"AFP","PublishedDate":"2022-06-23 07:08:42"});
</script>
我需要刮取值"PublishedDate":"2022-06-23 07:08:42"
我怎么能用scrapy做到这一点这是我尝试过的:
time = response.xpath('//script[@type="text/javascript"]/text()').re(r"gtag\('event', 'custom', ({.*})\);")
json_data = json.loads(time, strict=False)
print('dawn time::', json_data['PublishedDate'])
但是,我没有得到任何结果
2条答案
按热度按时间oknwwptz1#
我简单地解决了这个问题:
因为我需要的字段有一个相关的 meta标记
azpvetkf2#
使用regex从选择器中获取该数据,并使用
json.loads()
。输出量: