使用scrapy正则表达式捕获Web数据

时间:2014-10-17 01:58:24

标签: regex scrapy

我尝试在http://uslpro.uslsoccer.com/teams/2014/22310.html#ROSTER的源代码中捕获一个网址。

部分源代码如下所示。

getPlayers: function(){
    var url;
    $j('.visibleDiv').hide().removeClass('visibleDiv');
    $j('span#indicator-text').text('Roster');
    $j('div#indicator').fadeIn();
    url = '/teams/65672455/22310-65672522-ros.js';    

网址是我想要捕获的。我使用了正则表达式

pattern = re.escape("$j('div#indicator').fadeIn();") + '\s*url\s*=\s*(.*);'

但它不起作用。我在JavaScript中尝试了这个正则表达式。它可以位于开头索引处。

有人可以帮助我使用这个正则表达式吗?

1 个答案:

答案 0 :(得分:0)

我认为你错过了re.DOTALL flag

In [1]: import re

In [2]: t = """getPlayers: function(){
    var url;
    $j('.visibleDiv').hide().removeClass('visibleDiv');
    $j('span#indicator-text').text('Roster');
    $j('div#indicator').fadeIn();
    url = '/teams/65672455/22310-65672522-ros.js';   """

In [3]: pattern = re.escape("$j('div#indicator').fadeIn();") + '\s*url\s*=\s*(.*);'

In [4]: re.search(pattern, t, re.DOTALL).groups()
Out[4]: ("'/teams/65672455/22310-65672522-ros.js'",)

In [5]: 
相关问题