2012-07-04 3 views
0

누군가가 왜 이것이 작동하지 않는지 말할 수 있습니까?cookielib을 사용하는 Twitter 인증

import cookielib 
import urllib 
import urllib2 
cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
data = urllib.urlencode({'session[username_or_email]':'twitter handle' , 'session[password]':'password'}) 
opener.open('https://twitter.com' , data) 
stuff = opener.open('https://twitter.com') 
print stuff.read() 

왜 로그인 후에 페이지의 html을 제공하지 않습니까?

답변

0

작업에 Oauth 라이브러리 사용을 고려해보십시오. 트위터가 HTML 관련 자료를 언제든지 변경하고 코드가 손상 될 수 있으므로 mechanize를 사용하여 사이트를 스크랩하는 것은 권장되지 않습니다.

에 체크 아웃 : http://code.google.com/p/python-twitter/

간단한 예제를 파이썬 트위터에 업데이트를 게시하려면 :

>>> import twitter 
>>> api = twitter.Api(
      consumer_key='yourConsumerKey', 
      consumer_secret='consumerSecret', 
      access_token_key='accessToken', 
      access_token_secret='accessTokenSecret') 
>>> api.PostUpdate('Blah blah lbah!') 

가 실패하는 데는 여러 가지 이유가있을 수 있습니다 :

  • Twitter는 아마도 제공하지 않는 User-Agent 헤더를 기대합니다.
  • 나는 HTML을 보지 않았다. 그러나 폼이 실제로 제출되기 전에 많은 자바 스크립트가 있어야한다. (나는 실제로 이것이 사실이라고 생각한다. 왜냐하면 나는이 정확한 것을 매우 모호하게 나는 그것에 대한 링크를 찾는 것!)).
+0

사용자 에이전트가 추가되었지만 작동하지 않는 경우도 있습니다. 따라서 자바 스크립트를 처리하도록 제안 하시겠습니까? Ive는 tweepy를 시도했지만 twitter에 액세스하기 위해 내 라이브러리를 직접 만들고 싶습니다. – Manoj

+0

Javascript를 처리하는 것은 쉽지 않습니다. 파이썬에는 그 라이브러리가 없습니다. 셀레늄이 도움이 될 수 있습니다. 그러나 어쨌든 API를 사용하는 것이 좋습니다 ** 가장 안정적입니다 **. – SuperSaiyan