Python merangkak data dan mendapat senarai, tetapi bagaimana untuk mengalih keluar tag span di dalamnya?
我想大声告诉你
我想大声告诉你 2017-05-18 10:55:53
0
3
1028

Saya menggunakan p6ython3.6 untuk merangkak ke bawah beberapa data, tetapi yang akhirnya dipaparkan ialah senarai yang mengandungi teg span Apabila saya menggunakan get_text, kandungan, dll., ralat akan dilaporkan. kenapa ni?
Keputusan awal yang dikembalikan adalah seperti berikut:

[<span>2017.5.2</span>]
[<span>2017.4.26</span>]
[<span>2017.4.24</span>]
[<span>2017.4.19</span>]
[<span>2017.3.23</span>]
[<span>2017.3.17</span>]
[<span>2017.2.14</span>]
[<span>2017.2.9</span>]
[<span>2017.2.6</span>]
[<span>2017.2.6</span>]

Kod saya adalah seperti berikut:

import requests
from bs4 import BeautifulSoup
import re

# def url_list():
#     for number in range(1,21):
#         url_links=[]
#         url="X".format(i=number)
#         url_links.append(url)

h={"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36"}
r=requests.get("url",headers=h)
soup=BeautifulSoup(r.text,'lxml')

for data in soup.find("p",{"class":"list-main-eventset-finan"}).find_all("li"):
    content=data.find("i",{"class":"cell date"}).find_all("span")
    print(time)
我想大声告诉你
我想大声告诉你

membalas semua(3)
仅有的幸福

Saya tidak ingat API bs dengan jelas mesti ada fungsi yang boleh mendapatkan teks secara langsung. Ia sepatutnya fungsi get_text(). Memandangkan anda menggunakan find_all(), anda perlu melintasi hasil yang dikembalikan semula, itu sahajaget_text()这个函数吧。由于你用的是find_all(),那么需要再在返回的结果下做一次遍历,就是这样

rs = list()
for data in soup.find("p",{"class":"list-main-eventset-finan"}).find_all("li"):
    contents=data.find("i",{"class":"cell date"}).find_all("span")
    for content in contents:
        rs.append(content.get_text())
  

此外,也可以使用正则表达式来匹配,直接匹配<span>(.*?)< rrreee Selain itu, anda juga boleh menggunakan ungkapan biasa untuk dipadankan, padanan terus dengan corak <span>(.*?)<. Tetapi anda perlu merentasi senarai kandungan seperti di atas.

phpcn_u1582

Penyoal boleh mencuba kaedah text_content()

左手右手慢动作

Ekspresi biasa atau split+SUBSTRING juga boleh digunakan, gunakannya secara fleksibel

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan