Beautifulsoup избавиться от встроенных JS и CSS в HTML
Мне нужно разобрать несколько HTML через requests.get()
, Мне просто нужно сохранить содержимое страницы и избавиться от встроенного JavaScript и CSS. Я видел следующий пост, но решение не работает для меня.http://stackru.com/questions/14344476/how-to-strip-entire-html-css-and-js-code-or-tags-from-html-page-in-python
, http://stackru.com/questions/1936466/beautifulsoup-grab-visible-webpage-text
, а также http://stackru.com/questions/2081586/web-scraping-with-python
У меня есть рабочий код, который не удаляет JS или CSS... вот мой код...
count = 1
for link in clean_urls[:2]:
page = requests.get(link, timeout=5)
try:
page = BeautifulSoup(page.content, 'html.parser').text
webpage_out = open(my_params['q'] + '_' + str(count) + '.txt', 'w')
webpage_out.write(clean_page)
count += 1
except:
pass
webpage_out.close()
Я попытался включить решения по ссылкам, упомянутым выше, но у меня не работает ни один код. Какая строка кода может избавиться от встроенного JS и встроенного CSS
Вопрос Обновление 4 октября 2016
Файл, который read.csv
это что-то вроде этого...
trump,clinton
data science, operating system
windows,linux
diabetes,cancer
Я нажал на gigablast.com с этими условиями, чтобы найти одну строку за раз. Один поиск будет trump clinton
, Результатом является список URL. я requests.get(url)
и я обрабатываю эти URL, избавляясь от timeouts
, status_code = 400s
и создание чистого списка clean_urls = []
, После этого я запускаю следующий код...
count = 1
for link in clean_urls[:2]:
page = requests.get(link, timeout=5)
try:
page = BeautifulSoup(page.content, 'html.parser').text
webpage_out = open(my_params['q'] + '_' + str(count) + '.txt', 'w')
webpage_out.write(clean_page)
count += 1
except:
pass
webpage_out.close()
На этой строке кода page = BeautifulSoup(page.content, 'html.parser').text
У меня есть текст всей веб-страницы, включая стили и сценарии, если они были встроены. Я не могу нацелиться на них с BeautifulSoup, потому что теги больше не там. Я попробовал page = BeautifulSoup(page.content, 'html.parser')
а также find_all('<script>')
и попытаться избавиться от сценария, но в итоге я удалил весь файл. Желаемым результатом будет весь текст HTML без каких-либо...
body {
font: something;
}
или любой javascript...
$(document).ready(function(){
$some code
)};
В конечном файле не должно быть никакого кода, только содержание документа.
0 ответов
Я использовал этот код, чтобы избавиться от JavaScript и CSS-кода при утилизации HTML-страницы
import requests
from bs4 import BeautifulSoup
url = 'https://corporate.walmart.com/our-story/our-business'
r = requests.get(url)
html_doc = r.text
soup = BeautifulSoup(html_doc, 'html.parser')
title = soup.title.string
for script in soup(["script", "style"]):
script.decompose()
with open('output_file.txt', "a") as text_file:
text_file.write("\nURL : "+ url)
text_file.write("\nTitle : " + title)
for p_tag_data in soup.find_all('p'):
text_file.write("\n"+p_tag_data.text)
for li_tag_data in soup.find_all('li'):
text_file.write("\n"+li_tag_data.text)
for div_tag_data in soup.find_all('div'):
text_file.write("\n"+div_tag_data.text)