Ich habe p6ython3.6 verwendet, um einige Daten herunterzusuchen, aber was letztendlich angezeigt wurde, war eine Liste mit Span-Tags. Wenn ich get_text, Inhalte usw. verwendete, wurde ein Fehler gemeldet. Warum ist das?
Die ersten zurückgegebenen Ergebnisse lauten wie folgt:
[<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>]
Mein Code lautet wie folgt:
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)
bs的API记得不是很清楚了,应该是有可以直接获取文本的函数的,应该是
get_text()
这个函数吧。由于你用的是find_all()
,那么需要再在返回的结果下做一次遍历,就是这样此外,也可以使用正则表达式来匹配,直接匹配
<span>(.*?)<
这个pattern。但是也得像上面那样遍历这个contens列表才行。题主可以试试
text_content()
方法正则表达式或者split+SUBSTRING也可以,灵活着用