如何从所有html标签及其字体大小中提取文本?

时间:2019-04-15 12:41:03

标签: python html css

我希望从所有标签中提取文本及其字体大小。如果文本在所有页面的相同标签中,则能够提取它。我有不同的html链接,其中一些包含<p>标签,<font>标签等中的文本。

在一个html页面中,所有文本都位于<font>标记中,因此,很容易提取文本及其对应的字体大小,也可以通过使用{{1}来查找其是否为粗体}属性。

sample page source

font-weight

如果文本位于一种类型的标签中,则此方法很好。但是,当文本在单个网页(例如data = pd.read_excel(r'C:\Users\mob190004455\Desktop\html_segmentation_result\Additional_Sample_Docs.xlsx') links = list(data.iloc[:,1]) for l in range(len(links)): source_code = requests.get(links[l]).text soup = BeautifulSoup(source_code, 'lxml') font_spans = [ data for data in soup.select('font') if 'font-size' in str(data) ] output = [] for i in font_spans: tup = () try: fonts_size = re.search(r'(?is)(font-size:)(.*?)(px)',str(i.get('style'))).group(2) except AttributeError: fonts_size = 'None' try: fonts_weight = re.search(r'(?is)(font-weight:)(.*?)(;)',str(i.get('style'))).group(2) except AttributeError: fonts_weight = 'None' tup = (i.text,[fonts_size+'px',fonts_weight]) output.append(tup) seg_list = [output[i] for i in range(len(output)) if output[i][0] != '\xa0'] stripped_list = [', '.join(map(str, x)) for x in seg_list] new_seg_list = [a.replace('\n','') for a in stripped_list if a] <p>)中放置多个标签时,情况就变得复杂了。 another sample source

如何概括它,以便能够提取文本及其字体大小?

0 个答案:

没有答案