Xóa các tag trong file html

Em đang scrape web dùng BeautifulSoup4 và trong cái element em muốn bỏ mấy cái element như dưới

<br><br>
<div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="2224290546"</ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<br><br>
<br><br>
<div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="9719637189"</ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<br><br>
<br><br>
<div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="1941219516"</ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<br><br>

Vấn đề là làm sao để xóa mà nó mấy cái tag ạ, do em chỉ xóa 2 cái tag <br><br> đầu thôi còn hai cái <br><br> cuối giữ lại ạ
Mấy cái div chỉ khác nhau ở chỗ cái “attribute data-ad-slot”
Em cảm ơn :smile:

Thay vì tìm cách xoá <br><br>, bạn có thể lấy hết các <div class=\"ads-responsive\"> ra, rồi chèn <br><br> vào giữa các div, như vậy đơn giản hơn.

3 Likes

Em cũng nghĩ đến cách đó rồi nhưng mà kẹt cái chèn hai cái tag <br><br> nên mới nghĩ vào cách này :frowning:
Mà nếu chọn replace cái chuỗi <div>+<br><br> tag ở dưới thì bị phần data-ad-slot nó khác nhau nên không biết phải làm thế nào?

from bs4 import BeautifulSoup

html_string = """
<br><br>
<div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="2224290546"</ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<br><br>
<br><br>
<div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="9719637189"</ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<br><br>
<br><br>
<div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="1941219516"</ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
<br><br>
"""

soup = BeautifulSoup(html_string, 'html.parser')

divs = soup.find_all('div', attrs={'class':'ads-responsive'})

your_html = ''

for i in divs:
    your_html = your_html + str(i) + '<br><br>'


print(your_html)
2 Likes

Hình như anh hiểu sai ý em, trong hai cái đoạn tag <br><br> ở trên với ở dưới cái <div> tag thì em muốn bỏ đi một cái còn một cái để lại, còn anh thì thêm vào :expressionless:

Chạy cái code bên trên sẽ cho ra cái này, không biết phải ý bạn muốn như vậy?

<div class="ads-responsive">
<ins <="" class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="2224290546" ins="">
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</ins></div>
<br><br>

<div class="ads-responsive">
<ins <="" class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="9719637189" ins="">
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</ins></div>
<br><br>

<div class="ads-responsive">
<ins <="" class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="1941219516" ins="">
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</ins></div>
<br><br>
2 Likes

Dạ đúng là như thế :smile:.Em đang clawer truyện về máy gặp cái code như thế này

<div>
  Nội dung 
  <br><br>
  <div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="2224290546"      </ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
  <br><br>
  Nội dung
  <br><br>
  <div class="ads-responsive">
    <ins class="adsbygoogle" data-ad-client="ca-pub-5859440233178324" data-ad-slot="9719637189"</ins>
  <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
</div>
  <br><br>
  Nội dung
</div>

Do em gặp code nó như thế, mà nếu dùng theo cách của anh thì nó sẽ tìm cái tag <div> rồi cộng thêm <br><br> vậy nên nó hơi khó xử :slightly_frowning_face: hehe

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?