我有一堆HTML文件,我正尝试通过Beautifulsoup读取它。其中一些,我收到了一个错误。我尝试解码,编码...但是找不到问题。预先非常感谢。
这里是一个例子。
import requests
from bs4 import BeautifulSoup
new_text = requests.get('https://www.sec.gov/Archives/edgar/data/1723069/000121390018016357/0001213900-18-016357.txt')
soup = BeautifulSoup(new_text.content.decode('utf-8','ignore').encode("utf-8"),'lxml')
print(soup)
在Jupyter笔记本上,出现死机错误。 在Pycharm上,出现以下错误:(它会重复,因此删除了其中一些。但是时间很长。)
Traceback (most recent call last):
File "C:/Users/oe/.PyCharmCE2019.1/config/scratches/scratch_5.py", line 5, in <module>
print(soup)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1099, in __unicode__
return self.decode()
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\__init__.py", line 566, in decode
indent_level, eventual_encoding, formatter)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1188, in decode
indent_contents, eventual_encoding, formatter)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1257, in decode_contents
formatter))
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1188, in decode
indent_contents, eventual_encoding, formatter)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1257, in decode_contents
formatter))
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1188, in decode
indent_contents, eventual_encoding, formatter)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1257, in decode_contents
formatter))
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1188, in decode
indent_contents, eventual_encoding, formatter)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 1254, in decode_contents
text = c.output_ready(formatter)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 745, in output_ready
output = self.format_string(self, formatter)
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\site-packages\bs4\element.py", line 220, in format_string
if isinstance(formatter, Callable):
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\abc.py", line 190, in __instancecheck__
subclass in cls._abc_negative_cache):
File "C:\Users\oe\Anaconda3\envs\TextAnalysis\lib\_weakrefset.py", line 75, in __contains__
return wr in self.data
RecursionError: maximum recursion depth exceeded in comparison
答案 0 :(得分:0)
坦率地说,我不确定您的代码的根本问题是什么(尽管我在Jupyter笔记本中没有死掉的内核),但这似乎行得通:
url = 'https://www.sec.gov/Archives/edgar/data/1723069/000121390018016357/0001213900-18-016357.txt'
import requests
from bs4 import BeautifulSoup
new_text = requests.get(url)
soup = BeautifulSoup(new_text.text,'lxml')
print(soup.text)
请注意,在soup
中,new_text.content
被new_text.text
取代了,我不得不删除编码/解码参数,并且print
命令必须从{ {1}}(引发错误)到print(soup)
正常工作。也许更聪明的人可以解释...
另一个可用的选项是:
print(soup.text)