【问题标题】:BeautifulSoup returns gibberishBeautifulSoup 返回乱码
【发布时间】:2021-02-22 21:33:07
【问题描述】:

我正在尝试使用 BeautifulSoup 解析网站:

name="Sai"
url="https://www.babynamesdirect.com/baby-names/indian/boy/begins/"+name
babynamespage=urlopen(url)
pagesoup=BeautifulSoup(babynamespage,"html.parser")
print(pagesoup)

当我这样做时,我看到的不是完整的 HTML 标记,而是:

**Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER.**
      �]_��6��]wN�F�����챝x�k;q���DB$��h4�;��^�7���
&�{2�   ��g#�   �?���1&\

这是什么乱七八糟的东西? 如何解决这个问题?

【问题讨论】:

  • 您使用的page 是什么?一个网址?一个文件?
  • 它是一个 URL,而不是一个页面。
  • 好的,那么请将page的定义添加到您的帖子中。
  • 是的,就是这么做的。谢谢!
  • 当您在url 的定义中使用另一个变量时,您应该将该变量的定义也添加到您的帖子中,或者对其进行硬编码(改写url="https://www.babynamesdirect.com/baby-names/indian/boy/begins/somename")。另外,请发布python -c "import sys; print(sys.getdefaultencoding());"的输出

标签: python python-3.x beautifulsoup


【解决方案1】:

因此,请尝试将请求与美丽的汤一起使用。请求会获取数据,漂亮的汤会处理从数据中返回的文本。

# try this once
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.babynamesdirect.com/baby- 
names/indian/boy/a')
soup = BeautifulSoup(response.text)
print(soup)

【讨论】:

  • 太棒了!有用!你能告诉我我犯了什么错误吗?
  • 你能解释一下吗?
  • 另外,为什么你的超时时间是 3.05 和 27?
  • 我刚刚删除了超时,没有它也可以工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多