2013-05-01 35 views
0

我有這樣的腳本爲什麼兩個類型的結果爲我的python腳本?

import mechanize 
url = "http://www.globalhide.com/browse.php?u=u=http://www.whoisxmlapi.com/whoisserver/WhoisService?domainName=google.com" 
br = mechanize.Browser() 
br.set_handle_robots(False) 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 
response = br.open(url) 
content = response.read() 
f = open('q.html', 'w') 
f.write(content) 
f.close() 

我需要像this 結果當我從蟒蛇的外殼,結果正確運行此。但是當我把它保存在一個something.py文件中並像這樣運行時,我的代碼有什麼問題?

+1

您正在試圖做到這一點globalhide不希望你做的事。我可以建議你停止這樣做嗎? ;-) – 2013-05-01 13:04:34

回答

2

我不認爲你的代碼有任何問題。更改請求的網址會導致返回良好的數據。

該塊由globalhide.com自己實施。您在問題中添加的鏈接會提供您附加的相同頁面(或多或少)。我無法確切地告訴你這個熱鏈接阻止是如何實現的,但它可能是通過引用標題。展望referrer spoofing可能會幫助你在這裏。

編輯

偷步有點有WRT來源欺騙。我會與亞倫的餅乾建議。

2

對於該URL,我有時會得到XML,有時會在Chrome Linux中出現「無鏈接」頁面。第一個命中返回相同url的無鏈接頁面。如果我清除我的cookies並再次訪問該頁面,我會看到沒有鏈接的圖片。

看來,這個網站需要Cookie。以下內容應適用於您的代碼。

policy = mechanize.DefaultCookiePolicy(rfc2965=True) 
cj = mechanize.LWPCookieJar(policy=policy) 
br.set_cookiejar(cj) 

有關實現cookie的不同方法的更多信息,請查看Mechanize Docs - Cookies

編輯1您應該保存餅乾罐,請參閱Cookielib - Save

編輯2這裏的Cookie信息,該網站爲我設置:

Name: __utma 
Content: 53296278.1653562620.1363413018.1311413018.1337443014.1 
Domain: .globalhide.com 
Path: /
Send for: Any kind of connection 
Accessible to script: Yes 
Created: Wednesday, May 1, 2013 6:56:58 AM 
Expires: Friday, May 1, 2015 6:56:58 AM 
Name: s 
Content: x2tjlhb1qfidn5t1ds8kvd24p5 
Domain: www.globalhide.com 
Path: /
Send for: Any kind of connection 
Accessible to script: Yes 
Created: Wednesday, May 1, 2013 6:56:57 AM 
Expires: When the browsing session ends 
+0

對我無效 – 2013-05-01 13:22:16

+0

您是否保存cookie?我個人沒有使用Mechanize的經驗,但是這種save-cookie方法對我有用:[如何保存機械化瀏覽器Cookie到文件](http://stackoverflow.com/questions/7510806/how-to-save-mechanize-瀏覽器的cookies到文件) – 2013-05-01 14:02:29

相關問題