Tôi cần trích xuất dữ liệu từ các tệp HTML. Các tệp được đề cập rất có thể được tạo tự động. Tôi đã tải mã của một trong các tệp này lên Pastebin: http://pastebin.com/9Nj2Edfv. Đây là liên kết đến trang thực tế: http://eur-lex.europa.eu/Notice.do?checktexts=checkbox&val=60504%3Acs&pos=1&page=1&lang=en&pgs=10&nbl=1&list=60504%3Acs%2C&hwords=&action=GO&visu=%23texteTrích xuất dữ liệu từ các tệp HTML với BeautifulSoup và Python
Dữ liệu tôi cần trích xuất được tìm thấy trong các tiêu đề khác nhau.
Đây là những gì tôi có cho đến nay:
from BeautifulSoup import BeautifulSoup
ecj_data = open("data\ecj_1.html",'r').read()
soup = BeautifulSoup(ecj_data)
celex = soup.find('h1')
auth_lang = soup('ul', limit=14)[13].li
procedure = soup('ul', limit=20)[17].li
print "Celex number:", celex.renderContents(),
print "Authentic language:", auth_lang
print "Type of procedure:", procedure
tôi có tất cả các dữ liệu được lưu trữ tại địa phương đó là lý do nó sẽ mở file ecj_1.html.
Số Celex và ngôn ngữ xác thực hoạt động tốt.
celex trả
"Celex number:
61977J0059"
auth_lang trả "Authentic language: <li>French</li>"
tôi cần chỉ là nội dung của thẻ h1 (không phải là phá vỡ ở cuối).
[Ngoài ra, tôi cần auth_lang trở lại chỉ là "Pháp", và không phải là <li>
-tags.] Đây không phải là một vấn đề nữa. Tôi nhận ra rằng tôi chỉ có thể thêm ".text" vào cuối "auth_lang".
Thủ tục mặt khác trả về này:
Type of procedure: <li>
<strong>Type of procedure:</strong>
<br />
Reference for a preliminary ruling
</li>
đó là hoàn toàn sai lầm như tôi chỉ cần nó để trở về "tham chiếu cho một phán quyết sơ bộ".
Có cách nào để tôi có thể đạt được điều này không?
Second chỉnh sửa: tôi thay celex = soup.find('h1')
với celex = soup('h1', limit=2)[0]
và thêm .text
đến celex in.
Fraxel: Cảm ơn bạn rất nhiều! Nó hoạt động như một say mê. Ý tưởng là bằng cách nào đó chuyển đầu ra của tệp này sang cơ sở dữ liệu. Tôi tin rằng bạn có thể đã giải quyết được một vấn đề trong tương lai khi bạn chỉ cho tôi cách loại bỏ các dòng mới vì chúng có khả năng làm hỏng một số thứ sau này. Cảm ơn bạn lần nữa! – A2D2