从网页抓取的HTML页面中的Python脚本中提取列表

时间:2019-11-27 22:41:14

标签: python html web-scraping beautifulsoup

我不熟悉网页抓取功能,遇到了一个包含以下代码的小路障:

import requests
from bs4 import BeautifulSoup
url = "www.website.com"
page = requests.get(url)
soup = BeautifulSoup(page.content, "html.parser")
price_scripts = soup.find_all('script')[23]
print(price_scripts)

所有拉出的脚本似乎都是Python脚本。这是上面的代码打印出来的:

<script>
        p.a = [0,"6.93","9.34","3.42","7.88"];
        p.output();
</script>

我想做的是从此脚本中提取列表,但是当我尝试执行时,它只会返回“ None”。

1 个答案:

答案 0 :(得分:1)

您应该能够通过以下方式提取数据:

target = price_scripts.text

输出:

p.a = [0,"6.93","9.34","3.42","7.88"];
    p.output();

此时,您需要通过去除括号之间的所有内容来进行字符串操作,如下所示:

print(target.text.split('[')[1].split(']')[0])

请注意,每次使用split()方法都会创建一个列表,因此您必须从列表中选择正确的元素。 输出:

  

0,“ 6.93”,“ 9.34”,“ 3.42”,“ 7.88”