我的想法是探索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
但它没有打印任何东西。
答案 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
怎么样?