我正在使用lxml.html在python 2.7中抓取一个页面,我需要执行以下操作...
1)找出该行是否在页面上。我实际上是在寻找parent_asin是否存在。它不在每一页上。
DetailPage.StateController.setState('parent_asin', 'B0000DB87U');
2)如果它确实存在,我该如何获得B0000DB87U?当parent_asin在页面中时,每个页面都会更改。这都是在javascript中,我使用lxml来获取和解析html。需要JS的另一种方法。
答案 0 :(得分: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]