Я очищаю веб-сайт, скажем, xyz.com, используя Selenium и BeautifulSoup в Python.
Проблема заключается в том, что очистка выполняется таким образом, что элементы абзаца или p должны быть очищены таким образом, чтобы мы знали, что такое h1, h2, h3, h4, h5, h6, жирный текст, обычный текст для этого абзаца. Как я могу это сделать?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
import random
import os
import requests
from bs4 import BeautifulSoup as bs
output_to_file=[]
def get_p_values(): Get all the <p> tags on the page as objects
p_tags=br.find_elements_by_tag_name('p') # Get all the elements of the current web Page which contains <p> tag
for i in p_tags:
print(i.text)
def process(paragraphs): # Process the paragraph <p> tags objects
for p in paragraphs:
string=str(p)
out=formatting(string)
output_to_file.append(out)
def formatting(string): Format the paragraph values using replace
this=['<h1>','</h1>','<h2>','</h2>','<h3>','</h3>','<h4>','</h4>','<h5>','</h5>','<h6>','</h6>','<b>','</b>','<strong>','</strong>']
with_this=['\nh1 Tag:','\n','\nh2 Tag:','\n''\nh3 Tag:','\n''\nh4 Tag:','\n''\nh5 Tag:','\n''\nh6 Tag:','\n','\Bold:','\n''\nBold:','\n']
for i in range(len(this)):
if this[i] in string:
string=string.replace(this[i],with_this[i])
return(string)
br=webdriver.Chrome()
br.get('https://www.example.com/')
time.sleep(7)
curr_url=str(br.current_url)
req=requests.get(curr_url)
soup=bs(req.content,'lxml')
paragraphs=soup.find_all('p') #find all <p> tags elements inside current web page
print(paragraphs)
process(paragraphs) #get every single paragraph and make it more readable by formatting
print(paragraphs)
Вот некоторые другие ссылки, относящиеся к моей проблеме, по частям. Пожалуйста, посмотрите, чтобы вы могли ясно понять.
Как получить доступ к тегам (получить значения, такие как текст тегов) внутри тега? Как получить значение тега h1 внутри тега (абзаца) p?
Замена значений в строке для чего-то вроде на пустое '' или Nothing
Я знаю, что есть гораздо лучший подход, чем этот, но я понятия не имею. Поэтому, пожалуйста, помогите мне в этом.