Tôi cố gắng để phân tích thông tin (bảng html) từ trang web này: http://www.511virginia.org/RoadConditions.aspx?j=All&r=1BeautifulSoup HTML bảng phân tích cú pháp
Hiện nay tôi đang sử dụng BeautifulSoup và mã tôi có vẻ như thế này
from mechanize import Browser
from BeautifulSoup import BeautifulSoup
mech = Browser()
url = "http://www.511virginia.org/RoadConditions.aspx?j=All&r=1"
page = mech.open(url)
html = page.read()
soup = BeautifulSoup(html)
table = soup.find("table")
rows = table.findAll('tr')[3]
cols = rows.findAll('td')
roadtype = cols[0].string
start = cols.[1].string
end = cols[2].string
condition = cols[3].string
reason = cols[4].string
update = cols[5].string
entry = (roadtype, start, end, condition, reason, update)
print entry
Vấn đề là với các cột bắt đầu và kết thúc. Họ chỉ được in là "Không"
Output:
(u'Rt. 613N (Giles County)', None, None, u'Moderate', u'snow or ice', u'01/13/2010 10:50 AM')
Tôi biết rằng họ nhận được lưu trong danh sách cột, nhưng có vẻ như thẻ liên kết phụ là rối tung lên phân tích với html gốc tìm kiếm như thế này:
<td headers="road-type" class="ConditionsCellText">Rt. 613N (Giles County)</td>
<td headers="start" class="ConditionsCellText"><a href="conditions.aspx?lat=37.43036753&long=-80.51118005#viewmap">Big Stony Ck Rd; Rt. 635E/W (Giles County)</a></td>
<td headers="end" class="ConditionsCellText"><a href="conditions.aspx?lat=37.43036753&long=-80.51118005#viewmap">Cabin Ln; Rocky Mount Rd; Rt. 721E/W (Giles County)</a></td>
<td headers="condition" class="ConditionsCellText">Moderate</td>
<td headers="reason" class="ConditionsCellText">snow or ice</td>
<td headers="update" class="ConditionsCellText">01/13/2010 10:50 AM</td>
vì vậy những gì sẽ được in là:
(u'Rt. 613N (Giles County)', u'Big Stony Ck Rd; Rt. 635E/W (Giles County)', u'Cabin Ln; Rocky Mount Rd; Rt. 721E/W (Giles County)', u'Moderate', u'snow or ice', u'01/13/2010 10:50 AM')
Bất kỳ suggesti trợ giúp hoặc giúp đỡ được đánh giá cao, và cảm ơn bạn trước.
Cảm ơn bạn rất nhiều –
Bạn không phải sử dụng Súp đẹp cho điều đó. Bạn có thể sử dụng python3 htmlparser: https://github.com/schmijos/html-table-parser-python3/blob/master/html_table_parser/parser.py – schmijos