首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用scrapy从脚本标记中的gtag函数中刮取数据

使用scrapy从脚本标记中的gtag函数中刮取数据
EN

Stack Overflow用户
提问于 2022-06-26 07:46:28
回答 2查看 78关注 0票数 1

我正在刮一个网站,它的脚本标签包含以下代码:

代码语言:javascript
复制
<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" -这是我尝试过的:

代码语言:javascript
复制
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'])

但是,我没有得到任何结果

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-27 17:18:58

我解决这个问题的方法很简单:

代码语言:javascript
复制
time = response.xpath('//meta[@property="article:published_time"]/@content')[0].extract()

因为我所需要的字段有一个相关的元标记。

票数 1
EN

Stack Overflow用户

发布于 2022-06-26 10:59:10

使用regex从选择器中获取数据,并使用json.loads()

代码语言:javascript
复制
import scrapy
import json


class ExampleSpider(scrapy.Spider):
    name = "example"

    start_urls = ['file:///PathToFile/temp.html']

    def parse(self, response):
        all_data = response.xpath('//script[@type="text/javascript"]/text()').re(r"gtag\('event', 'custom', ({.*})\);")
        for data in all_data:
            data = json.loads(data)
            yield {'PublishedDate': data['PublishedDate']}

输出:

代码语言:javascript
复制
[scrapy.core.scraper] DEBUG: Scraped from <200 file:///PathToFile/temp.html>
{'PublishedDate': '2022-06-23 07:08:42'}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72759756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档