我有以下问题要问。
我有一个bs4.element.Tags列表,例如此图像的列表
如您所见,有很多元素带有标签“ a href =“ / title / ...”>。但是,我不想保留所有元素。我只想要那些后面跟着<img>
标签。如何实现?
其次,当我仅保留那些元素
我只想将单词保留在标题标签中。例如,在下面的图片中,将“ img title =“ Gravity”保留为仅重力一词。
HTML DOCS的链接: HTML Documents for each movie
代码
from tqdm import tqdm
with open('requests_list_dummy.pkl', 'rb') as f:
requests_list_dummy = pickle.load(f)
souplist = []
for i in tqdm(requests_list_dummy):
souplist.append(BeautifulSoup(i.text))
souplist_dummy = souplist
# phase 1
phase_1 = []
for i in tqdm(souplist_dummy):
phase_1.append(i.find_all('div', {'class':'article', 'id': 'titleRecs'}))
# -----------------------------------------------------------------------------------
# phase 2
phase_2 = []
import re
r_one = re.compile(".*title")
for i in tqdm(phase_1):
for j in i:
phase_2.append(j.find_all('img'))
# -----------------------------------------------------------------------------------
# # phase 3
phase_3 = []
for i in tqdm(range(len(phase_2))):
phase_3.append(list(map(lambda x: x, phase_2[i][0:12])))
# # phase 4
phase_4 = []
for i in tqdm(phase_3):
for j in i:
phase_4.append(j.find_all('title'))
答案 0 :(得分:0)
您可以尝试以下命令,该命令需要bs4 4.7.1+并使用:has
来指定您想要a
带有img
子级的标签,然后与相邻的同级组合器获取下一个{{1 }}并添加attribute = value选择器,以确保img
包含特定的子字符串和href
属性。如果您知道总会有一个title
属性,则可以从选择器中删除它。
title