2013-07-30 8 views
0

나의 아이디어는 Groupon의 웹 사이트를 탐색하여 거래의 URL을 추출하는 것이 었습니다. (이 페이지의 : http://www.groupon.de/alle-deals/muenchen/restaurant-296) 문제는이 같은 datas를 찾기 위해 그루 폰의 페이지에 findall은을 할 노력하고있어 것입니다 웹 페이지에서 데이터를 긁어 모으는 Python Regex

"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

살펴볼 시간이 있다면 BeautifulSoup 및 Requests 라이브러리는 Python에서 스크랩을 만들 수 있습니다. 훨씬 쉬워. –

+2

왜 [groupon api] (http://www.groupon.com/pages/api)에 등록하여 안전하고 편리하며 합법적 인 방법으로 목표를 달성하지 않습니까? – J0HN

답변

-1

우선 RESATAURANT1에서 RESTAURANT1으로 변경하는 것이 어떻습니까? 관심, 나는 이런 식으로 할 것이라고 블록을 추정하기 위해

+0

적어도 시도해 봤어? 정규식에는 많은 다른 오류가 있습니다. Downvote. – J0HN

+0

올바른 정규 표현식은 입니다. "RESTAURANT1", "dealPermaLink": "/ [\ w -] */[\ w -] */[\ w -] */\ d * ' –

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를 interprete를 시도 할 수 있습니다이부터 시작 (일부 스레드가있다 그것에 대한 stackoverflow에). 다른 사람이 말한 것처럼

어쨌든, 당신은 그루 폰 API를 ...

P.S.를 사용한다 구문 분석하려는 블록을 사전으로 쉽게 파싱 할 수 있으며 이미 잘 보면 사전 목록입니다.

+0

성공했습니다. 덕분에 내가 한 일이 여기 있습니다. 내 문제는 정규식을 잘 이해하지 못했다는 것입니다. import urllib2 import re html = urllib2.urlopen ('http://www.groupon.de/alle-deals/muenchen/restaurant-296') .// \ w -] */[\ w -] */[\ w-] txt = html liste = re.findall ('카테고리 ":"RESTAURANT1 ","dealPermaLink " */\ d * ', txt) 인쇄 목록 –

관련 문제