2013-12-16 117 views
-2

我試圖從一個網站刮文字,到目前爲止,我寫了下面的代碼:BeautifulSoup HTML刮

import urllib, urllib2, cookielib, re, io, sys 
from bs4 import BeautifulSoup 

cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 

resp = opener.open('http://www.bancuri.net/formular_mail.aspx?ID=3181').read() 
soup = BeautifulSoup(resp) 
for tr in soup.find_all('p'): 
    tds = tr.find_all('justify') 
    for x in tds: 
     print x 

,我需要刮的數據是:

Categoria: Bărbaţi şi femei 
Bancul: O femeie către un bărbat la o petrecere: 
- Dumneata tare semeni cu al treilea soţ al meu. 
- Dar de cîte ori aţi fost căsătorită? 
- De două ori pînă acum. 

但它不能正常工作,而且我得到以下結果:

C:\Users\admin\Desktop>bancuri.py 
C:\Users\admin\Desktop> 

什麼可能會錯誤的任何想法?

+0

我看着那個網址。您需要用戶名和密碼才能訪問它。 – Joe

+0

不,不需要用戶名或密碼即可訪問! – kingcope

+0

編輯你的文章,添加你作爲輸出得到的內容,以便讓別人更容易幫助你。 – Rubens

回答

1

我對cookielib知之甚少,但是我僅使用模塊urllib2檢索頁面,該頁面也被導入到您的代碼中。

首先,這樣的:

resp = urllib2.urlopen('http://www.bancuri.net/formular_mail.aspx?ID=3181').read() 

並獲取你需要的東西:

>>> soup = BeautifulSoup(resp) 
>>> text = soup.find('p').get_text() 
>>> print text 

Categoria: Bărbaţi şi femei 
Bancul: 

O femeie către un bărbat la o petrecere: 

- Dumneata tare semeni cu al treilea soţ al meu. 

- Dar de cîte ori aţi fost căsătorită? 

- De două ori pînă acum. 
+0

回溯(最近通話最後一個): 文件 「」,1號線,在 文本= soup.find( 'P')get_text() AttributeError的: 'NoneType' 對象有沒有屬性 'get_text' – kingcope

+0

是你確定你在刮同一頁?什麼「打印湯」產量? – aIKid

+0

http://pastebin.com/PXWPNC5b – kingcope