首页 > 解决方案 > Webscraping page_soup.findAll 我需要从网页中提取特定数据但不知道该怎么做

问题描述

我正在尝试做一些网页抓取,我需要从网页中提取关键字。我正在尝试使用 page_soup.findAll() 来提取它,但我不知道在 () 之间插入什么来提取我需要的东西。

页面代码如下:

var kv = {"seccion": "otros","nivel": "home","nota": "","id_nota": "","tipo": "noticias","keywords" : "IMPUESTOS,  SII,  EXCEDENTES ISAPRES,  INCENDIOS,  COLUSION CONFORT,  COMPENSACION,  PERMISOS DE CIRCULACION,  REVISION TECNICA"};

我需要这些数据:

"IMPUESTOS, SII, EXCEDENTES ISAPRES, INCENDIOS, COLUSION CONFORT, COMPENSACION, Permisos de CircULACION, REVISION TECNICA"

谢谢

标签: pythonhtmlweb-scrapingbeautifulsoup

解决方案


这不是HTML,但JavaScript对此findaAll()没有用。

你有它作为字符串,所以使用字符串函数来获取它 - 即。切片[start:end], split(),replace()

或者您可以从此字符串中删除var kv =;并且您将拥有 JSON 字符串,您可以使用模块将其转换为 Python 的字典json,然后您可以从字典中获取它 -dictionary["keywords"]

text = 'var kv = {"seccion": "otros","nivel": "home","nota": "","id_nota": "","tipo": "noticias","keywords" : "IMPUESTOS,  SII,  EXCEDENTES ISAPRES,  INCENDIOS,  COLUSION CONFORT,  COMPENSACION,  PERMISOS DE CIRCULACION,  REVISION TECNICA"};'

text = text[9:-1]  # remove `var kv = ` and `;`

import json

d = json.loads(text)

print(d['keywords'])

推荐阅读