Giả sử mình có 1 url sau khi lấy được html rồi mình muốn lấy nội dung trong thẻ <div id="divNewsContent">
ra thì làm thế nào mình dùng Python
Lấy nội dung bài viết từ url trong Python
Bạn có thể dùng beautifulsoup hoặc regex
Mình đã thử dùng re nhưng ko thành ban xem html của trang rồi bày giúp m được ko
Nên dùng Beautiful soup hoặc các html parser tương tự bạn ạ, regex thì trừ khi dùng cho biết cách dùng chứ nên tránh
@TheSky Thời này ai dùng lib nữa, phải chơi find xong cắt chuỗi mới gọi là pro
việc find và cắt thì mình hoàn toàn có thể làm đk :), còn cái bs4 bạn xem cái html của trang rồi cho m đoan code lấy content được không :((
Mình troll vui thôi bạn chứ ai dùng vậy
@JuniorK Beautiful soup bạn dùng thử cái này xem thế nào đi Đôi khi phân vân quá cũng không hay đâu.
Còn cách
Thì chỉ có @thanhmssl10 thần thánh mới làm được thôi
Kiểu như này này:
In [11]: r = s.get('http://dantri.com.vn/the-gioi/khong-tac-khong-che-may-bay-ai-cap-vi-muon-gui-thu-cho-vo-cu-2016032915181413.htm')
In [12]: soup = BeautifulSoup(r.text, 'html.parser')
In [13]: result = soup.select(".fon31.mgb15")
In [14]: result[0]
Out[14]: <h1 class="fon31 mgb15">\r\n Kh\xf4ng t\u1eb7c kh\u1ed1ng ch\u1ebf m\xe1y bay Ai C\u1eadp v\xec mu\u1ed1n g\u1eedi th\u01b0 cho v\u1ee3 c\u0169</h1>
cảm ơn bạn mình đã lấy đk nội dung của thẻ divNewsContent giờ chỉ clear html là xong
Thêm .text
là xong
À chuẩn rồi u , bạn thêm cái .text là sẽ lấy được phần text bên trong
In [22]: soup.select(".fon31.mgb15")[0].text
Out[22]: u'\r\n Kh\xf4ng t\u1eb7c kh\u1ed1ng ch\u1ebf m\xe1y bay Ai C\u1eadp v\xec mu\u1ed1n g\u1eedi th\u01b0 cho v\u1ee3 c\u0169'
response = requests.get(url) parsed_body = html.fromstring(response.text) check = parsed_body.xpath('//div[@id="divNewsContent"]/h1/text()')
mình dùng cái cách này cơ mà thỉnh thoảng không lấy được thì phải
cho e hỏi thêm là nếu muốn lấy nội dung bài báo đó thì làm ntn ạ , e mới tìm hiểu , thanks
Cái này bạn phải xem cấu trúc file HTML của trang như thế nào nhé. Ví dụ như tag/class nào quy định title, cái nào quy định nội dung,…
Có thư viện html.parser
để lấy parse nội dung từ 1 file html hoàn chỉnh.
tại m của cũng chỉ biết sơ sơ html nên chưa rõ , bạn có thể vd thêm đc k vậy , vd như lấy nd bài báo này http://dantri.com.vn/the-gioi/lo-bay-no-myanmar-thu-hep-du-an-cang-7-ty-usd-voi-trung-quoc-20180802211534508.htm
Mở trên trình duyệt:
- Gõ nội dung title vào để xem nó ở đâu.
- Gõ tiếp từ 3 chữ đầu của phần chữ xám xem ở đâu.
- Tiếp 2 link dưới
- Tiếp nội dung.
Kết luận các format:
Title:
<h1 class="fon31 mgb15">
{title}</h1>
Phần ngay dưới:
<h2 class="fon33 mt1 sapo">
<span>Dân trí</span> {summary}<br /><a href={link1} title={linktitle1}><b> >> {title1}</b></a><br /><a href={link2} title={linktitle2}><b> >> {title2}</b></a>
</h2>
Các phần sau tự làm tương tự.
tuyệt , cảm ơn HK boy