2015-08-17 16 views
0

我試圖抓取一個網頁,但它需要我先登錄。我是新來的網頁抓取所以請原諒我的代碼:在未啓用JavaScript的網頁上使用機械化和美麗的湯

import urllib 
import urllib2 
from bs4 import BeautifulSoup 
import mechanize 

browser = mechanize.Browser() 
browser.addheaders = [('User-agent', 'Mozilla/5.0')] 
browser.set_handle_robots(False) 
browser.open('https://mywebsite.com') 
# browser.select_form(name = 'form2') 
# browser.form['Account Name'] = 'username' 
# browser.form['Password'] = 'mypassword' 
# browser.submit() 

soup = BeautifulSoup(browser.response().read()) 
print soup 

但是我得到這個錯誤:

<html><head><script language="javascript"> 
<!--. 
    . 
    . 
</script> 
<noscript> 
<title>No JavaScript Error</title> 
<body> 
<h3 align="center">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</h3> 
</body></noscript></head></html> 
+0

我不認爲這是一個錯誤:大量的頁面包括他們的標記的無腳本版本。它可能被腳本替換,如果它運行。 – ssube

+0

我能做些什麼來解決這個問題? – jxn

回答

0

嘗試使用下面的頭代替,服務器可能無法識別你的頭,因此它可能導致它認爲你沒有啓用JavaScript:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36 

注:有些網站有抗刮的保護,你將不得不解決的JavaScript難題得到實際內容。您可以使用Js2Py作爲該或任何其他JavaScript運行時。刮這樣的網站是困難得多,但幸運的是很少有網站使用這個系統。

+0

嗯我仍然看到相同的錯誤:/ – jxn