0

次のコードを使用して、次の Web ページに対応するソース コード内のすべての rowspan="7" を検索しています。

http://www.sebi.gov.in/sebiweb/investment/FIILatestSE.jsp?period=month

驚くべきことに、42 個の rowspan="7" があるにもかかわらず、find_all の結果にはすべてが表示されず、22 個しか表示されません。なんで?

これは私のコードです:

from bs4 import BeautifulSoup
import csv
import time
import mechanize
import cookielib

# Browser
br = mechanize.Browser()

# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Browser options
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)

# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

# Want debugging messages?
#br.set_debug_http(True)
#br.set_debug_redirects(True)
#br.set_debug_responses(True)

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')]
print "Obtaining FII data from SEBI..."
r = br.open('http://www.sebi.gov.in/sebiweb/investment/FIILatestSE.jsp?period=month')
data = r.read()
messages=[]
messages.append("FII data obtained from SEBI")
soup=BeautifulSoup(data)
list=soup.find_all(rowspan="7")
4

1 に答える 1

0

xml 引数を追加することでこれを解決しました。

soup = BeautifulSoup(data, 'xml')

明確にするために、lxml がインストールされていることを確認してください。他のパーサーがインストールされている場合、lxml が上書きされ、解析が期待どおりに行われない可能性があります。

于 2013-07-30T16:09:35.437 に答える