2014-05-16 2 views
-1

나는 혼란 스럽습니다! 아무도 문제가 어디 있는지 말해 줄 수 있니? 이 코드는 제대로 작동하는 데 사용되었지만 어제부터 아무 것도 반환하지 않았습니다. 나는 그것에 어떤 변화도 만들지 않았다 !!! 아무도 어떤 생각을 가지고 있니 ???urllib2는 파이썬에서 아무것도 반환하지 않습니다

import re 
from re import sub 
import time 
import cookielib 
from cookielib import CookieJar 
import urllib2 
from urllib2 import urlopen 
import difflib 
import requests 


def twitParser(): 

     try: 
      cj = CookieJar()    
      opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
      res=opener.open('https://twitter.com/haberturk') 
      html=res.read() 

      splitSource=re.findall(r'<p class="js-tweet-text tweet-text">(.*?)</p>',html) 
      print len(splitSource) 

      for item in splitSource: 
       aTweet = re.sub(r'<.*?>','',item) 
       print aTweet 

      except Exception, e: 
       print str(e) 
       print 'ERROR IN MAIN TRY' 



    twitParser() 
+2

이 정규 표현식에와 HTML을 구문 분석하지 마십시오 꽤 좋은 일 . http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags를 참조하십시오 (또한 Twitter에는 API가 있습니다. 스크린 스크럽하지 마십시오). – geoffspear

+0

또한 탭을 혼합합니다. 큰 nono이고 버그를 일으킬 수있는 파이썬 들여 쓰기 공간. –

+0

이 원인 일 수 있습니다 ???? 어디에????? 덕분에 – Jeren

답변

0

코드는 변경하지 않은 경우, 다른 propably 뭔가보다 :

이 태그는 더 이상 존재하지 않습니다

<p class="js-tweet-text tweet-text"> 

대신이 무엇인가 :

ProfileTweet-text js-tweet-text u-dir 

regexp를 사용하여 원하는 것을 얻을 수는 있지만 사용하지 말고 대신 xml 파서를 사용하십시오.

from bs4 import BeautifulSoup 
soup = BeautifulSoup(html) 
ptags = soup.find_all("p") 
texts = [p.text for p in ptags if "js-tweet-text" in p["class"]] 

적절하게 분할하여 먼저 html이 있는지 확인한 다음 p 태그를 찾은 다음 조건을 충족하는 태그를 찾으면됩니다.

Wooble이 말했듯이 대신 twitter api를 사용하면 이러한 회사에서 제공하므로 긁어 모아 리소스를 낭비하지 않아도됩니다. 내게 대답 모든 악마에

+0

. "먼저 html을 가져와야합니다."문제는 여기에 있다고 생각합니다. 나는 트위터로 코드를 실행했다. HTML 태그가 많이 있지만 트윗이 그들 사이에 있지 않아서 실수를 저지르고 있다고 생각합니다. 내 코드가 더 이상 작동하지 않는다는 점이 무엇이 바뀌 었는지 궁금합니다. a twitter apt가 트윗을 반환하는지 질문 할 수 있습니까 ?? 나는 그것을 찾았고 그것은 나에게 5-6 api를 주었다 !! 어느 쪽을 사용해야합니까 ??? – Jeren

+0

파이썬 - 트위터 (pip install python-twitter)를 사용하는 것이 좋습니다. 트위터 계정을 설정하고 나중에이 지침을 따르십시오 : [twitter api oauth] (http://themepacific.com/how-to-generate-api- twitter-oauth/994 /), [python-twitter lib] (https://code.google.com/p/python-twitter/) – galinden

+0

감사합니다. 그것과 나는 그것이 일하기를 바란다 :) 나는 여기서 알릴 것이다. – Jeren

0

감사합니다 :) 나는이 라인 변경 :

splitSource=re.findall(r'<p class="js-tweet-text tweet-text">(.*?)</p>',html) 

splitSource=re.findall(r'dir="ltr">(.*?)</p>',sourceCode) 

로하고 그것은 :

관련 문제