Python BeautifulSoup:检查是否对警告进行编码,并标记该站点以便稍后返回

Python BeautifulSoup:检查是否对警告进行编码,并标记该站点以便稍后返回,python,beautifulsoup,Python,Beautifulsoup,如果我运行此操作,终端将打印“一些字符无法解码,并被替换字符替换。”但会创建Soupped_页面 有时,url不是pdf,因此我希望能够检查是否创建了此警告,将url存储在其他位置,而不是收集文本 import requests from bs4 import BeautifulSoup as bs4 error_urls = set() correct_urls = set() collected_text = [] page = 'https://abc.xyz/investor/stat

如果我运行此操作,终端将打印“一些字符无法解码,并被替换字符替换。”但会创建Soupped_页面

有时,url不是pdf,因此我希望能够检查是否创建了此警告,将url存储在其他位置,而不是收集文本

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)

创建Soupped_page变量后,它将打印日志警告,Soupped_page.contains_replacement_characters变量将变为True。然后我检查,如果答案是错的,我继续,否则我会通过那个特定的Soupped_页面而不收集文本

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

为什么要使用BeautifulSoup解析PDF文件?url并不总是说PDF,我给你一个重新创建它的途径。如果我收集一堆URL,我想检查是否收到此警告,并使用pdf阅读器返回。该“替换字符”是有效的Unicode代码,因此您可以测试它是否出现在刚刚解析的文本中。如何?souped_page.find(“某些字符无法解码,被替换为替换字符。”)为什么整个字符串都会出现在文本中?它所说的是,未编码的字符已经被替换。另外(我没有检查文档)将
放大页面。查找
是否也在文本中搜索?你已经有那条短信了。
souped_page = bs4(request.content,'html.parser')
if souped_page.contains_replacement_characters != False:
    pass