BeautifulSoup 显示奇怪的文字
BeautifulSoup shows strange text
我正在尝试从孟加拉语(语言)网站抓取数据。
当我检查该网站上的元素时,一切正常。
代码:
request = requests.get("https://corona.gov.bd/")
soup = BeautifulSoup(request.content, "lxml")
print(soup.prettify())
部分输出:
<strong>
সà¦à¦°à¦¾à¦à¦° à¦à¦¿à¦à§à¦à¦¾à¦¸à¦¾
</strong>
সà¦à¦°à¦¦à¦à¦° à¦à¦¿ =14=]
我不确定它是不是ASCII。我使用 https://onlineasciitools.com/convert-ascii-to-unicode 将该文本转换为 Unicode。根据这个网站,它可能是 ASCII。但是我在网上查了一个 ASCII table,里面有 none 个字符。所以现在我需要将这些文本转换成可读的东西。有帮助吗?
你应该像这样解码内容:
request.content.decode('utf-8')
是的,它的工作。您需要解码('utf-8')请求响应。
import requests
from bs4 import BeautifulSoup
request = requests.get("https://corona.gov.bd/")
soup = BeautifulSoup(request.content.decode('utf-8'), "lxml")
my_data = soup.find('div', {'class':'col-md-6 col-sm-6 col-xs-12 slider-button-center xs-mb-15'})
print(my_data.get_text(strip=True, separator='|'))
打印输出:
্বাস্থ্য বিষয়ক সেবা|(ডাক্তার, হাসপাতাল, ঔষধ, টেস্ট)|খাদ্য ও জরুরি সেবা|(খাদ্য, অ্যাম্বুলেন্স, ফায়ার সার্ভিস)|সচরাচর জিজ্ঞাসা|FAQ
requests.get()
returns 返回的请求包括原始字节内容 (request.content
) 和通过内容中声明的编码解码的内容。
request.encoding
是实际编码(不一定是UTF-8),request.text
是已经解码的内容
使用 request.text
的示例:
import requests
from bs4 import BeautifulSoup
request = requests.get("https://corona.gov.bd/")
soup = BeautifulSoup(request.text, "lxml")
print(soup.find('title'))
<title>করোনা ভাইরাস ইনফো ২০১৯ | Coronavirus Disease 2019 (COVID-19) Information Bangladesh | corona.gov.bd</title>
我正在尝试从孟加拉语(语言)网站抓取数据。 当我检查该网站上的元素时,一切正常。
代码:
request = requests.get("https://corona.gov.bd/")
soup = BeautifulSoup(request.content, "lxml")
print(soup.prettify())
部分输出:
<strong>
সà¦à¦°à¦¾à¦à¦° à¦à¦¿à¦à§à¦à¦¾à¦¸à¦¾
</strong>
সà¦à¦°à¦¦à¦à¦° à¦à¦¿ =14=]
我不确定它是不是ASCII。我使用 https://onlineasciitools.com/convert-ascii-to-unicode 将该文本转换为 Unicode。根据这个网站,它可能是 ASCII。但是我在网上查了一个 ASCII table,里面有 none 个字符。所以现在我需要将这些文本转换成可读的东西。有帮助吗?
你应该像这样解码内容:
request.content.decode('utf-8')
是的,它的工作。您需要解码('utf-8')请求响应。
import requests
from bs4 import BeautifulSoup
request = requests.get("https://corona.gov.bd/")
soup = BeautifulSoup(request.content.decode('utf-8'), "lxml")
my_data = soup.find('div', {'class':'col-md-6 col-sm-6 col-xs-12 slider-button-center xs-mb-15'})
print(my_data.get_text(strip=True, separator='|'))
打印输出:
্বাস্থ্য বিষয়ক সেবা|(ডাক্তার, হাসপাতাল, ঔষধ, টেস্ট)|খাদ্য ও জরুরি সেবা|(খাদ্য, অ্যাম্বুলেন্স, ফায়ার সার্ভিস)|সচরাচর জিজ্ঞাসা|FAQ
requests.get()
returns 返回的请求包括原始字节内容 (request.content
) 和通过内容中声明的编码解码的内容。
request.encoding
是实际编码(不一定是UTF-8),request.text
是已经解码的内容
使用 request.text
的示例:
import requests
from bs4 import BeautifulSoup
request = requests.get("https://corona.gov.bd/")
soup = BeautifulSoup(request.text, "lxml")
print(soup.find('title'))
<title>করোনা ভাইরাস ইনফো ২০১৯ | Coronavirus Disease 2019 (COVID-19) Information Bangladesh | corona.gov.bd</title>