Hướng dẫn how extract specific data from html file using python? - Làm thế nào để trích xuất dữ liệu cụ thể từ tệp html bằng cách sử dụng python?

Bạn không nên sử dụng regexes trên HTML. Bạn nên sử dụng BeautifulSoup hoặc LXML. Dưới đây là một số ví dụ sử dụng đẹp:

Thẻ TD của bạn thực sự trông như thế này:

<td>newline
<a>some link</a>newline
<br />newline
some data 1<br />newline
some data 2<br />newline
some data 3</td>

Vì vậy, td.text trông như thế này:

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3

Bạn có thể thấy rằng mỗi chuỗi được phân tách bởi ít nhất một dòng mới, do đó cho phép bạn tách ra từng chuỗi.

from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3

Hoặc chính xác hơn:

for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3

Nhưng giải pháp đó là giòn vì nó sẽ không hoạt động nếu HTML của bạn trông như thế này:

<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>

Bây giờ td.text trông như thế này:

<newline>some link<newline>some data 1some data2some data3

Và không có cách nào để tìm ra nơi một số chuỗi bắt đầu và kết thúc. Nhưng điều đó chỉ có nghĩa là bạn không thể sử dụng td.text-vẫn còn những cách khác để xác định từng chuỗi:

1)

from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    a_tags = td.find_all('a')

    for a_tag in a_tags:
        csv_data.append(a_tag.text)
        br_tags = a_tag.findNextSiblings('br')

        for br in br_tags:
            csv_data.append(br.next.strip())  #get the element after the <br> tag

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3

2)

for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    for string in a_tag.findNextSiblings(text=True):  #find only text nodes
        string = string.strip()
        if string: csv_data.append(string)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3

3)

for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3

Mô -đun đẹp trong Python cho phép chúng tôi xóa dữ liệu từ các tệp HTML cục bộ. Vì một số lý do, các trang trang web có thể được lưu trữ trong một địa phương (môi trường ngoại tuyến) và bất cứ khi nào cần, có thể có các yêu cầu để lấy dữ liệu từ chúng. Đôi khi cũng có thể nhận được dữ liệu từ nhiều tệp HTML được lưu trữ cục bộ. Thông thường các tệp HTML có các thẻ như,, các thẻ, v.v., sử dụng đẹp, chúng ta có thể loại bỏ nội dung và nhận các chi tiết cần thiết. & NBSP;module in Python allows us to scrape data from local HTML files. For some reason, website pages might get stored in a local (offline environment), and whenever in need, there may be requirements to get the data from them. Sometimes there may be a need to get data from multiple Locally stored HTML files too. Usually HTML files got the tags like

, ,…, tags etc., Using BeautifulSoup, we can scrap the contents and get the necessary details. Cài đặt

Nó có thể được cài đặt bằng cách nhập lệnh dưới đây vào thiết bị đầu cuối.

pip install beautifulsoup4

Bắt đầu

Nếu có một tệp HTML được lưu trữ ở một vị trí và chúng ta cần loại bỏ nội dung thông qua Python bằng cách sử dụng đẹp, LXML là một API tuyệt vời vì nó có nghĩa là để phân tích XML và HTML. Nó hỗ trợ cả phân tích cú pháp một bước và phân tích cú pháp từng bước. & Nbsp; lxml is a great API as it meant for parsing XML and HTML. It supports both one-step parsing and step-by-step parsing. 

Hàm preptify () trong BeautifulSoup giúp xem bản chất thẻ và việc làm tổ của chúng. & Nbsp;Prettify() function in BeautifulSoup helps to view the tag nature and their nesting. 

Ví dụ: Hãy để tạo ra một tệp HTML mẫu.Let’s create a sample HTML file.

Python3

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
0
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
1

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
0
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
3

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
4
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
6

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
7
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
8
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
0

from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
1
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
2
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
3
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
4
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
5
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
6
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
7

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
7
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
9
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
1

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
7
for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
3
for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
4

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
7
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
9
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
8

Output:

Hướng dẫn how extract specific data from html file using python? - Làm thế nào để trích xuất dữ liệu cụ thể từ tệp html bằng cách sử dụng python?

Bây giờ, hãy sử dụng phương thức Premtify () để xem các thẻ và nội dung theo cách dễ dàng hơn.

Python3

for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
9
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
0
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
0
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
2

<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
3
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
2
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
3
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
7
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
5
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
9
<newline>some link<newline>some data 1some data2some data3
0

<newline>some link<newline>some data 1some data2some data3
1
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline>some data 1some data2some data3
3

<newline>some link<newline>some data 1some data2some data3
4
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline>some data 1some data2some data3
6
<newline>some link<newline>some data 1some data2some data3
7
<newline>some link<newline>some data 1some data2some data3
0

for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
3
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    a_tags = td.find_all('a')

    for a_tag in a_tags:
        csv_data.append(a_tag.text)
        br_tags = a_tag.findNextSiblings('br')

        for br in br_tags:
            csv_data.append(br.next.strip())  #get the element after the <br> tag

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
0

Đầu ra: & nbsp;

https://media.geeksforgeeks.org/wp-content/uploads/20210419123712/gfg-priyaraj-article-page-scraped-to-offline-mode-html-and-printing-in-console.mp4

Theo cách này có thể nhận được dữ liệu HTML. Bây giờ thực hiện một số hoạt động và một số sâu sắc trong dữ liệu.

Ví dụ 1:

Chúng ta có thể sử dụng các phương thức find () và khi nội dung HTML thay đổi một cách linh hoạt, chúng ta có thể không biết tên thẻ chính xác. Trong thời gian đó, chúng ta có thể sử dụng Findall (đúng) để lấy tên thẻ trước, và sau đó chúng ta có thể thực hiện bất kỳ loại thao tác nào. Ví dụ: lấy tên thẻ và độ dài của thẻ

Python3

for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
9
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
0
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
0
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
2

<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
3
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
2
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
3
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
7
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
5
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
9
<newline>some link<newline>some data 1some data2some data3
0

<newline>some link<newline>some data 1some data2some data3
1
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline>some data 1some data2some data3
3

<newline>some link<newline>some data 1some data2some data3
4
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline>some data 1some data2some data3
6
<newline>some link<newline>some data 1some data2some data3
7
<newline>some link<newline>some data 1some data2some data3
0

for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
1
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
2
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
3
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
4
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
55____86

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
7
for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
3
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
9
pip install beautifulsoup4
0
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
5
pip install beautifulsoup4
2
pip install beautifulsoup4
3

Output:

https://media.geeksforgeeks.org/wp-content/uploads/20210419124258/gfg-scraped-data-and-get-the-tag-names-and-length.mp4

Ví dụ 2:

Bây giờ, thay vì quét một tệp HTML, chúng tôi muốn làm cho tất cả các tệp HTML có trong thư mục đó (có thể có những điều cần thiết cho các trường hợp như trên cơ sở hàng ngày, một thư mục cụ thể có thể chứa đầy dữ liệu trực tuyến và như một quy trình hàng loạt , cạo phải được thực hiện).

Chúng ta có thể sử dụng các chức năng mô -đun của OS OS. Hãy để chúng tôi lấy thư mục hiện tại tất cả các tệp HTML cho các ví dụ của chúng tôi

Hướng dẫn how extract specific data from html file using python? - Làm thế nào để trích xuất dữ liệu cụ thể từ tệp html bằng cách sử dụng python?

Vì vậy, nhiệm vụ của chúng tôi là lấy tất cả các tệp HTML để bị loại bỏ. Theo cách dưới đây, chúng ta có thể đạt được. Toàn bộ các tệp HTML thư mục được xóa từng cái một và độ dài thẻ của chúng cho tất cả các tệp được truy xuất và nó được hiển thị trong video đính kèm.

Python3

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
0
pip install beautifulsoup4
5

for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
9
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
0
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
0
<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />some data 1<br />some data 2<br />some data 3</td>
2

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
00
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
02

for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
1
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
04
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
3
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
06

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
7
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
08
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
09
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
10
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
6

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
12
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
13
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
15

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
12
for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
3
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
3
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
19
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
20

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
12
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
1
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
2
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
24
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
25
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
26
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
27
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
28

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
29
<newline>some link<newline>some data 1some data2some data3
4
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
5
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
32
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
27
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
34
<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
35
<newline>some link<newline>some data 1some data2some data3
0

Các

<newline>some link<newline><newline>some data 1<newline>some data 2<newline>some data 3
44
for td in tds:
    print(re.sub("\n+", ",", td.text.lstrip() ) ) 

--output:--
some link,some data 1,some data 2,some data 3
3
for td in tds:
    a_tag = td.find('a')
    if a_tag: csv_data.append(a_tag.text)

    text_strings = a_tag.findNextSiblings( text=re.compile('\S+') )  #find only non-whitespace text nodes
    csv_data.extend(text_strings)

csv_str = ",".join(csv_data)
print(csv_str)

--output:--
some link,some data 1,some data 2,some data 3
9
pip install beautifulsoup4
0
from bs4 import BeautifulSoup as bs
import re

html = """<td>
<a href="http://www.linktosomewhere.net" title="title here">some link</a>
<br />
some data 1<br />
some data 2<br />
some data 3</td>"""

soup = bs(html)
tds = soup.find_all('td')
csv_data = []

for td in tds:
    inner_text = td.text
    strings = inner_text.split("\n")

    csv_data.extend([string for string in strings if string])

print(",".join(csv_data))

--output:--
some link,some data 1,some data 2,some data 3
5
pip install beautifulsoup4
2
pip install beautifulsoup4
3

Output: 

https://media.geeksforgeeks.org/wp-content/uploads/20210419125444/gfg-scraping-multiple-files.mp4


Làm thế nào để bạn nhận được một văn bản cụ thể từ HTML trong Python?

Cách trích xuất văn bản từ một tệp HTML trong Python..
url = "http://kite.com".
html = urlopen (url). đọc().
Súp = Đẹp (HTML).
cho kịch bản trong súp (["kịch bản", "phong cách"]):.
script. phân tách () xóa thẻ ra ..
dải = danh sách (súp. sọc_strings).
in (dải [: 5]) In Danh sách bắt đầu ..

Làm cách nào để lấy dữ liệu HTML từ Python?

Để trích xuất dữ liệu bằng cách sử dụng máy quét web với Python, bạn cần làm theo các bước cơ bản sau:..
Tìm URL mà bạn muốn cạo ..
Kiểm tra trang ..
Tìm dữ liệu bạn muốn trích xuất ..
Viết mã ..
Chạy mã và trích xuất dữ liệu ..
Lưu trữ dữ liệu theo định dạng cần thiết ..

Làm thế nào để bạn xóa dữ liệu từ các tệp HTML cục bộ bằng Python?

Thêm cột mới vào DataFrame hiện có trong Pandas ..
Hàm Python Map () ..
Đọc tệp JSON bằng Python ..
Lấy đầu vào trong Python ..
Cách lấy tên cột trong Pandas DataFrame ..
Đọc một dòng tệp từng dòng trong Python ..
Từ điển Python ..
Lặp lại trong một danh sách trong Python ..

Làm thế nào lấy một dữ liệu cụ thể từ một tệp trong Python?

Cách trích xuất các phần cụ thể của tệp văn bản bằng Python..
Hãy chắc chắn rằng bạn đang sử dụng Python 3 ..
Đọc dữ liệu từ một tệp văn bản ..
Sử dụng "với mở".
Đọc các tệp văn bản theo từng dòng ..
Lưu trữ dữ liệu văn bản trong một biến ..
Tìm kiếm văn bản cho một chuỗi con ..
Kết hợp các biểu thức thường xuyên ..
Để tất cả chúng cùng nhau..