使用 Scrapy,如何获取 Javascript 变量的值....
这是我的代码...
<script rel="bmc-data">
var match = 'yes';
var country = 'uk';
var tmData = {
"googleExperimentVariation": "1",
"pageTitle": "Child Care",
"page_type": "claimed",
"company_state": "wyostate",
"company_city": "mycity"
};
</script>
我想检查 page_type 变量的值。如果其“声明”处理该页面,否则继续......
我试过这个...
pattern = r'page_type = "(\w+)",'
response.xpath('//script[@rel="bmc-data"]').re(pattern)
当然这不起作用,因为我认为我的正则表达式是错误的。
最佳答案
您的正则表达式模式在这里有问题:
# you are looking for this bit: "page_type": "claimed",
re.findall('page_type": "(.+)"', html_body)
# ["claimed"]
或者在您的情况下,在 scrapy 选择器的上下文中:
response.xpath('//script[@rel="bmc-data"]').re('page_type": "(.+)"')
如果您需要像这样解析多个变量,我推荐 Paul 提到的答案,因为正则表达式并不总是像 xml 解析一样可靠。
关于python - Scrapy - 获取 Javascript 变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41718257/