Hướng dẫn get html data python - lấy dữ liệu html python

Tôi là người mới đến Python. Đây là mã của tôi hoạt động trên Python 2.7.5

import urllib2
import sys       

url ="mydomain.com"
usock = urllib2.urlopen(url)
data = usock.read()
usock.close()

print data

Nhận được đánh dấu HTML như thế và nó hoạt động.

Những gì tôi muốn làm là, để có được giá trị từ thẻ

Data
0. cho người yêu cũ. Tôi cần giá trị dữ liệu từ ví dụ này:
Data

Làm thế nào để làm nó?

Đã hỏi ngày 6 tháng 9 năm 2013 lúc 11:38Sep 6, 2013 at 11:38Sep 6, 2013 at 11:38

1

Bạn có thể sử dụng mô -đun phân tích cú pháp HTML như

Data
1:
from bs4 import BeautifulSoup as BS
url ="mydomain.com"
usock = urllib2.urlopen(url)
data = usock.read()
usock.close()
soup = BS(data)
print soup.find('font', {'class':'big'}).text

Điều này tìm thấy một thẻ

Data
2 với
Data
3. Sau đó, nó in nội dung của nó.

Đã trả lời ngày 6 tháng 9 năm 2013 lúc 11:39Sep 6, 2013 at 11:39Sep 6, 2013 at 11:39

Hướng dẫn get html data python - lấy dữ liệu html python

TerryaterryaTerryATerryA

56.9K11 Huy hiệu vàng117 Huy hiệu bạc137 Huy hiệu đồng11 gold badges117 silver badges137 bronze badges11 gold badges117 silver badges137 bronze badges

2

Sử dụng

Data
4:
import urllib2
import lxml.html

url ="mydomain.com"

usock = urllib2.urlopen(url)
data = usock.read()
usock.close()
for font in lxml.html.fromstring(data).cssselect('font.big'):
    print font.text

>>> import lxml.html
>>> root = lxml.html.fromstring('Data')
>>> [font.text for font in root.cssselect('font.big')]
['Data']

Đã trả lời ngày 6 tháng 9 năm 2013 lúc 11:40Sep 6, 2013 at 11:40Sep 6, 2013 at 11:40

Falsetrufalsetrufalsetrufalsetru

343K57 Huy hiệu vàng683 Huy hiệu bạc606 Huy hiệu Đồng57 gold badges683 silver badges606 bronze badges57 gold badges683 silver badges606 bronze badges

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    ĐọcBeautifulsoup

    Bàn luận

    Approach:

    • ĐọcBeautifulsoup
    • Điều kiện tiên quyết: Đẹp
    • Trong bài viết này, chúng tôi sẽ thảo luận về cách có thể được sử dụng để tìm một thẻ có giá trị thuộc tính đã cho trong tài liệu HTML.
    • Nhập mô -đun.
    • Dữ liệu phế liệu từ một trang web.

    Phân tích chuỗi chuỗi được cạo đến HTML.find(attr_name=”value”)

    Sử dụng hàm find () để tìm thuộc tính và thẻ.find(attr_name=”value”)

    In kết quả.

    Python3

    Cú pháp: & nbsp; tìm (attr_name = giá trị trực tuyến)

    Dưới đây là một số triển khai của phương pháp trên:

    Ví dụ 1: & nbsp;

    Output:

    Data
    
    8

    Data
    
    5
    Data
    
    6
    Data
    
    7
    Data
    
    8
    Data
    
    9
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    0
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    3
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    41
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    0
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    3
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    4
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    5

    Python3

    Cú pháp: & nbsp; tìm (attr_name = giá trị trực tuyến)

    Dưới đây là một số triển khai của phương pháp trên:

    Output:

    Data
    
    0

    Data
    
    19
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    09
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    0

    Python3

    Cú pháp: & nbsp; tìm (attr_name = giá trị trực tuyến)

    Dưới đây là một số triển khai của phương pháp trên:

    Output:

    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    3

    Ví dụ 1: & nbsp;

    Data
    
    5
    Data
    
    6
    Data
    
    7
    Data
    
    8
    Data
    
    9
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    0
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    3
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    4

    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    4

    Data
    
    91
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    0
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    3
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    4
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    5

    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    5

    Data
    
    5
    Data
    
    6
    Data
    
    7
    Data
    
    8
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    3
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    4

    Data
    
    9
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    0
    Data
    
    5
    Data
    
    6
    Data
    
    7
    Data
    
    8
    Data
    
    9
    from bs4 import BeautifulSoup as BS
    url ="mydomain.com"
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    soup = BS(data)
    print soup.find('font', {'class':'big'}).text
    
    0
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    3
    import urllib2
    import lxml.html
    
    url ="mydomain.com"
    
    usock = urllib2.urlopen(url)
    data = usock.read()
    usock.close()
    for font in lxml.html.fromstring(data).cssselect('font.big'):
        print font.text
    
    4

    Vì vậy, tôi có một trang chai trong Pythonanywhere đang hiển thị một danh sách các mục trong cơ sở dữ liệu sqlite của tôi. Trong mỗi mục có thể thay đổi, tôi muốn cung cấp cho trang khác thông tin liên quan từ cơ sở dữ liệu dựa trên tên của mục danh sách đã được nhấp.

    Vì vậy, trong trường hợp này, tôi muốn lấy giá trị của phần tử này và sử dụng biến trong truy vấn SQLite của tôi thông qua Python.

    Tuy nhiên, theo hiểu biết của tôi, giá trị của một phần tử HTML không thể truy xuất. Tôi đang tự hỏi nếu có ai biết cách lấy giá trị năng động này với Python.

    Trong bài viết này, chúng tôi chỉ ra cách tìm các phần tử HTML của một lớp nhất định hoặc một ID nhất định trong Python bằng cách sử dụng đẹp.

    Vì vậy, hãy nói rằng chúng ta có một đoạn có thuộc tính lớp bằng với "TopSection".

    Làm thế nào chúng ta có thể nhận được tất cả các thẻ đoạn văn có một lớp bằng với "TopSection"

    Và cách chúng tôi làm điều này là bằng cách sử dụng một từ điển có khóa lớp và giá trị bằng "Top".

    Điều này được hiển thị trong mã dưới đây.

    Vì vậy, chúng ta hãy xem qua mã này ngay bây giờ.

    Vì vậy, chúng tôi nhập mô -đun yêu cầu.

    Sau đó chúng tôi nhập đẹp từ BS4.

    Sau đó, chúng tôi tạo một biến có tên là getPage và đặt nó bằng yêu cầu.get ('http://www.learningaboutelectronics.com')

    Sau đó, chúng tôi tạo phiên bản đẹp của trang này và phân tích các yếu tố HTML của tài liệu này.

    Sau đó, chúng tôi tạo một biến có tên là All_Class_Topsection. Điều này tìm thấy tất cả các yếu tố P (các phần tử đoạn) có thuộc tính lớp bằng với "TopSection"

    Sau đó, chúng tôi tạo một vòng lặp lặp qua tất cả các thẻ đoạn của lớp "TopSection" và in từng thẻ.

    Và ID là điều chính xác tương tự.

    Giả sử chúng ta có các đoạn văn có ID bằng "para1"

    Mã để in ra tất cả các thẻ đoạn văn bằng ID "para1" được hiển thị bên dưới.soup. to select it. The caveat is that it will only select the first HTML element with that tag. This is a simple example.

    Vì vậy, mã này tái hiện và in ra tất cả các yếu tố đoạn văn bằng ID "para1"

    Python: Tạo chuỗi HTML với các thẻ xung quanh (các) từ....

    Giải pháp mẫu:-.

    Mã Python: def add_tags (tag, word): trả về " % s" % (tag, word, tag) in (add_tags ('i', 'python'))) ...

    Flowchart:.

    Trình chỉnh sửa mã Python: ....

    Có một cách khác để giải quyết giải pháp này ?.