2011-08-08 20 views
1

私はこのスクリプトpdfmeatを使ってgoogle scholarから論文に関するデータを入手しようとしました。Pythonでプロキシ経由でwget呼び出しを行うには?

このスクリプトは自分のパソコンではうまく動作しますが、このスクリプトをサーバーに配置しようとすると結果が表示されません。私はwgetの内のオプションがあることを発見した

その後
$ wget scholar.google.com 
--2011-08-08 04:52:19-- http://scholar.google.com/ 
Resolving scholar.google.com... 72.14.204.147, 72.14.204.99, 72.14.204.103, ... 
Connecting to scholar.google.com|72.14.204.147|:80... connected. 
HTTP request sent, awaiting response... 302 Found 
Location: http://www.google.com/sorry/?continue=http://scholar.google.com/ [following] 
--2011-08-08 04:52:24-- http://www.google.com/sorry/?continue=http://scholar.google.com/ 
Resolving www.google.com... 74.125.93.147, 74.125.93.99, 74.125.93.103, ... 
Connecting to www.google.com|74.125.93.147|:80... connected. 
HTTP request sent, awaiting response... 503 Service Unavailable 
2011-08-08 04:52:24 ERROR 503: Service Unavailable. 

:私はそれが非常におそらく、私がエラーを持っていることを与える私のサーバーがGoogle学者のブラックリストであるということである(chaptaを解決するためにリダイレクト)を見ました--execute "http_proxy = urltoproxy"私はそれをした

wget -e "http_proxy=oneHttpProxy" scholar.google.com 

と私はGoogleの学者からindex.htmlを保存することができます。

私はpdfmeat.pyと同じことを試みましたが、結果はありません。

def getWebdata(self, link, referer='http://scholar.google.com'): 
    useragent = 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8' 
    c_web = 'wget --execute "http_proxy=oneHttpProxy" -qO- --user-agent="%s" --load-cookies="%s" "%s" --referer="%s"' % (useragent, WGET_COOKIEFILE, link, referer) 
    c_out = os.popen(c_web) 
    c_txt = c_out.read() 
    c_out.close() 
    if re.search("We're sorry", c_txt) or re.search("please type the characters", c_txt): 
     self.logger.critical("scholar captcha") 
     if not self.options.quiet: 
      print "PDFMEAT: scholar captcha!" 
     sys.exit() 
    self.logger.debug("getwebdata excerpt: %s" % (re.sub("\n", " ", c_txt[0:255]))) 
    self.queryLog.append("getwebdata excerpt: %s" % (re.sub("\n", " ", c_txt[0:255]))) 
    return c_txt 

スクリプトモジュールOSを使用する:

これはコードです。元の関数にはwgetの--executeオプションはありません。

ありがとうございます。

答えて

0

http_proxy envを設定しましたか? var?

ので:$輸出http_proxyに= "oneHttpProxy"

$パイソンpdfmeat.py

....

+0

私はちょうどしようとしたが、それは、あなたは自分の生を第一を試みることができる –

+0

を動作しません。 wgetコマンド第1位、そう:$ http_proxy = http:// your_http_proxy wget http://scholar.google.com – vvatsa

+0

それは動作します!変数http_proxyを使用して! –

関連する問題