Как создать набор данных из данного веб-сайта, который показывает значения p-тегов и теги h1, h2 ... hn отдельно - PullRequest
0 голосов
/ 20 июня 2019

Я очищаю веб-сайт, скажем, 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

Я знаю, что есть гораздо лучший подход, чем этот, но я понятия не имею. Поэтому, пожалуйста, помогите мне в этом.

...