BeautifulSoup: проверьте, если кодировка предупреждений и пометить сайт, чтобы вернуться позже - PullRequest
0 голосов
/ 25 февраля 2020
import requests
from bs4 import BeautifulSoup as bs4
error_urls = set()
correct_urls = set()
collected_text = []

page = 'https://abc.xyz/investor/static/pdf/2019Q4_alphabet_earnings_release.pdf'
headers = {'User-Agent': '''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'''}
request = requests.get(page,headers = headers)
souped_page = bs4(request.content,'html.parser')
collected_text.append(souped_page.text())
correct_urls.add(page)

Если я запускаю это, терминал печатает «некоторые символы не могут быть декодированы и были заменены символом ЗАМЕНЫ». но страница souped_page создана.

Иногда URL-адрес не pdf, поэтому я хочу иметь возможность проверить, создано ли это предупреждение, сохранить URL-адрес в другом месте и не собирать текст.

try:
    souped_page = bs4(request.content,'html.parser')
except encoding warning:
    error_urls.add(page)

1 Ответ

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

после создания переменной souped_page будет напечатано предупреждение журнала, а переменная souped_page.contains_replacement_characters изменится на True. Затем я проверяю это и продолжаю, если ответ ложный, в противном случае я пропускаю эту конкретную страницу souped_page и не собираю текст.

souped_page = bs4(request.content,'html.parser')
if souped_page.contains_replacement_characters != False:
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...