你可以用
splash
作为最后的选择,它将导致你的蜘蛛更昂贵和复杂。
幸运的是,在您的情况下,您可以使用
<script>
获取所需数据的标记。
首先你需要得到正确的答案
<脚本>
标签:
ans = response.xpath("//script[contains(text(),'telephone')]/text()").extract_first()
它给你一个
json
这样地:
{
"@context": "http://schema.org",
"@type": "Person",
"name": "Cynthia Hóss Rocha",
"description": "advogada há 15 anos.",
"telephone": "(11) 985282712",
"image": "imgs.jusbr.com/profiles/5368773/images/1419878998_standard.jpg",
"jobTitle": "Advogado",
"url": "https://cynthiahossrocha.jusbrasil.com.br",
"address": {
"@type": "PostalAddress",
"addressLocality": "São Paulo (SP)",
"streetAddress": "Rua Marconi, 131",
"postalCode": "01047-000"
}
}
要将其转换为所需的对象
import json
使用
json.loads
:
json_ans = json.loads(ans)
最后,您只需要提取所需的值:
phone = json_ans["telephone"]