Случайно сохранен источник html вместо оригинального html - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь извлечь / очистить указанную c информацию с сайта, на который я подписан. Я должен был работать на месте, так как я сотрудничал с другим исследователем. Итак, я загрузил файл html, используя chrome и «просмотр исходного кода» (CTRL + U), а затем «сохранить как» (CTRL + S), чтобы прочитать файл с помощью l xml или bs4 для извлечения информация, с которой мы хотели работать. Однако текущий сетевой файл html на chrome отличается от моего сохраненного файла. Я могу показать html только частично, потому что он содержит личную информацию.

Chrome

<!DOCTYPE html>
<html lang="en">

<head>
<title>Contact Report for XXXX </title>
<meta name="robots" content="noindex" />
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
<meta content='text/html;charset=utf-8' http-equiv='content-type'>
<meta name="format-detection" content="telephone=no"> 

HTML Файл, который я читаю, выглядит следующим образом:

<!doctype html> 
<!-- saved from url=(0227)https://XXXXXXXXXXXXXXXXXXXXXXXXXX -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><div class="line-gutter-backdrop"></div><table><tbody><tr><td class="line-number" value="1"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="2"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="3"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="4"></td><td class="line-content"><br></td></tr><tr><td class="line-number" value="5"></td><td class="line-content"><span class="html-doctype">&lt;!DOCTYPE html&gt;</span></td></tr><tr><td class="line-number" value="6"></td><td class="line-content"><span class="html-tag">&lt;html <span class="html-attribute-name">lang</span>="<span class="html-attribute-value">en</span>"&gt;

После некоторого исследования Stackoverflow я понял, что нам нужно сохраните html напрямую вместо сохранения исходного файла html. Но мы не можем сохранить его снова, потому что 1. мы сэкономили около 1000 таким образом, 2. мы заплатили за услугу и не можем оплатить снова.

Есть ли способ отменить второй html файл в разобранную версию? В противном случае, я попробую подход с регулярными выражениями.

Заранее большое спасибо.

1 Ответ

1 голос
/ 01 февраля 2020

from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html5lib') # use html5lib parser (pip install html5lib) soup = BeautifulSoup(soup.prettify(), 'html5lib') # repair structure with prettify() soup.table # Probably is what you need

https://www.crummy.com/software/BeautifulSoup/bs4/doc/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...