Python Regex从网页上抓取数据

时间:2013-07-30 09:11:16

标签: python regex web-scraping

我的想法是探索Groupon的网站以提取交易的网址。问题是我正在尝试在Groupon的页面上查找findall来查找这样的数据:(本页:http://www.groupon.de/alle-deals/muenchen/restaurant-296

"category":"RESTAURANT1","dealPermaLink":"/deals/muenchen-special/Casa-Lavecchia/24788330", and I'd like to get the 'deals/muenchen-special/Casa-Lavecchia/24788330'.

我试了一整晚,但我找不到正确的正则表达式。我试过了:

import urllib2
import re
Page_Web = urllib2.urlopen('http://www.groupon.de/alle-deals/muenchen/restaurant-296').read()
for m in re.findall('category*RESATAURANT1*dealPermaLink*:?/*/*/*/*\d$',Page_Web):
   print m

但它没有打印任何东西。

2 个答案:

答案 0 :(得分:1)

为了推断您感兴趣的块,我会这样做:

from bs4 import BeautifulSoup
import urllib2
html = urllib2.urlopen('http://www.groupon.de/alle-deals/muenchen/restaurant-296').read()
soup = BeautifulSoup(html)
scriptResults = soup('script',{'type' : 'text/javascript'})
js_block = scriptResults[12]

从这开始你可以解析一个正则表达式,如果你想要或尝试解释js(在stackoverflow上有一些关于它的线程)。

无论如何,就像其他人说的那样,你应该使用groupon api ......

P.S。 您正在解析的块可以很容易地解析为字典,如果您看起来很好,已经是字典列表...

答案 1 :(得分:-1)

首先将RESATAURANT1更改为RESTAURANT1怎么样?

相关问题