1

我正在使用 lxml.html 在 python 2.7 中抓取一个页面,我需要执行以下操作...

1)找出这条线是否在页面上。我实际上是想看看 parent_asin 是否存在。它不是在每一页上。

DetailPage.StateController.setState('parent_asin', 'B0000DB87U');

2) 如果确实存在,我如何获得 B0000DB87U?当 parent_asin 在页面中时,每个页面都会改变。这一切都在 javascript 中,我正在使用 lxml 来获取和解析 html。JS需要另一种方法。

4

1 回答 1

2

您可以使用 lxml 提取<script>标签的所有内容,然后使用正则表达式对其进行解析。

未经测试的例子:

doc = lxml.html.parse(url)
scripts = doc.xpath('//script')
for script in scripts:
    match = re.findall(r"DetailPage\.StateController\.setState\('parent_asin', '(.*)'\);", script.text)
    if match:
        print match[0]
于 2012-04-18T04:16:13.013 回答