При использовании BeautifulSoup4 на Python, почему, когда я пытаюсь напечатать элемент "<p>", это приводит к 'None'? - PullRequest
1 голос
/ 10 марта 2020

Мой код:

html_doc = "file:///C:/Users/Me/Desktop/Convert%20URL%20to%20HTML%20Link.html"
soup = BeautifulSoup(html_doc, "html.parser")


print(soup.p)

Использование другого soup.a / p / title также приводит к None, хотя я уверен, что в * 1010 должен быть какой-либо из этих элементов. * document.

Это фактическая URL-ссылка на документ HTML: https://www.textfixer.com/html/convert-url-to-html-link.php

1 Ответ

0 голосов
/ 10 марта 2020

Предполагая, что html является файлом в вашем каталоге, который вы скачали.

Вы должны открыть файл сначала, прочитайте, а затем очистите:

пример как ниже:

from bs4 import BeautifulSoup

file_dir = "C:/Users/Me/Desktop/Convert URL to HTML Link.html"

with open (file_dir , "r") as files_f:
    content = files_f.read()
files_f.close()
soup = BeautifulSoup(content, 'html.parser')
selections_p = soup.find_all("p")

print(selections_p )

, если вы просматриваете с веб-сайта, вам следует запросить страницу сначала, а затем почистить:

import requests
from bs4 import BeautifulSoup

with requests.session() as s_request:
    url_to_scrape  = 'https://www.textfixer.com/html/convert-url-to-html-link.php'
    request_page = s_request.get(url_to_scrape)

    soup = BeautifulSoup(request_page.content, 'html.parser')
    soup = BeautifulSoup(content, 'html.parser')
    selections_p = soup.find_all("p")
    print(selections_p)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...