2011-08-14 45 views
7

trang web mục tiêu: http://www.immi.gov.au/skilled/general-skilled-migration/estimated-allocation-times.htmLàm thế nào để trích xuất một số phần của một trang web bằng Python

Phần tôi muốn trích xuất:

<tr> 
    <td>Skilled &ndash; Independent (Residence) subclass 885<br />online</td> 
    <td>N/A</td> 
    <td>N/A</td> 
    <td>N/A</td> 
    <td>15 May 2011</td> 
    <td>N/A</td> 
    </tr> 

Khi mã tìm thấy phần này bằng cách tìm kiếm từ khóa "lớp con 885
trực tuyến
", sau đó nó sẽ in ngày nằm trong thẻ thứ 5 là" 15 tháng 5 năm 2011 "như được hiển thị ở trên.

Nó chỉ là một màn hình cho bản thân để theo dõi tiến độ của đơn xin nhập cư của tôi.

+0

tra cứu BeautifulSoup –

Trả lời

6

"Beau--ootiful Soo--oop!

Beau--ootiful Soo--oop!

Soo - oop của e - e - buổi tối,

Beautiful, beauti--FUL SOUP! "

--Lewis Carroll, Alice's Adventures in Wonderland

Tôi nghĩ rằng đây là chính xác những gì ông có trong tâm trí!

Các Mock Rùa có lẽ sẽ làm một cái gì đó như thế này:

>>> from BeautifulSoup import BeautifulSoup 
>>> import urllib2 
>>> url = 'http://www.immi.gov.au/skilled/general-skilled-migration/estimated-allocation-times.htm' 
>>> page = urllib2.urlopen(url) 
>>> soup = BeautifulSoup(page) 
>>> for row in soup.html.body.findAll('tr'): 
...  data = row.findAll('td') 
...  if data and 'subclass 885online' in data[0].text: 
...   print data[4].text 
... 
15 May 2011 

Nhưng tôi không chắc chắn nó sẽ giúp đỡ, kể từ ngày đã trôi qua!

Chúc bạn may mắn với ứng dụng!

+1

Cảm ơn bạn đã viết mã và tôi luôn tự hỏi BSoup có nghĩa là gì .... – jiaoziren

6

Bạn có thể muốn sử dụng như là một điểm khởi đầu:

Python 2.6.7 (r267:88850, Jun 13 2011, 22:03:32) 
[GCC 4.6.1 20110608 (prerelease)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import urllib2, re 
>>> from BeautifulSoup import BeautifulSoup 
>>> urllib2.urlopen('http://www.immi.gov.au/skilled/general-skilled-migration/estimated-allocation-times.htm') 
<addinfourl at 139158380 whose fp = <socket._fileobject object at 0x84aa2ac>> 
>>> html = _.read() 
>>> soup = BeautifulSoup(html) 
>>> soup.find(text = re.compile('\\bsubclass 885\\b')).parent.parent.find('td', text = re.compile(' [0-9]{4}$')) 
u'15 May 2011' 
+0

Người mới bắt đầu ở đây, nhưng từ những gì tôi đã đọc, mô-đun được ưu tiên cho việc cạo màn hình bằng lxml. Nó chỉ là một vấn đề ưu tiên hoặc làm cung cấp bất kỳ lợi thế đáng kể? Ngoài ra, bạn đang giảm bạn tỷ lệ 30-1. – danem

+0

Xin chào Pete, tôi đã không sử dụng lxml, tôi sẽ phải xem xét nó. Và bạn nói đúng, tôi đi, nhưng đi đúng hướng: ^) –

+0

Ah, tôi nghĩ bạn muốn đi theo hướng khác. Có vấn đề gì khi đặt câu hỏi? D: – danem

Các vấn đề liên quan