我要抓取这个网站:http://waqfeya.com/book.php?bid=1
但是当我这样做时,我会得到像这样的人物ÇáÞÑÂäÇáßÑíã。
这是我的脚本的样子:
import requests
from bs4 import BeautifulSoup
BASE_URL = "http://waqfeya.com/book.php?bid=1"
source = requests.get(BASE_URL)
soup = BeautifulSoup(source.text, 'lxml')
print(soup)
我尝试了这些事情,但对我不起作用:
source.encoding = 'utf-8'
这:
source.encoding = 'ISO-8859-1'
这也是
soup = BeautifulSoup(source.text, from_endocing='ISO-8859-1')
但是没有人为我工作。
请帮助
谢谢。
答案 0 :(得分:0)
使用urlopen
代替request
from bs4 import BeautifulSoup
from urllib import urlopen
BASE_URL = "http://waqfeya.com/book.php?bid=1"
open = urlopen(BASE_URL)
soup = BeautifulSoup(open, 'lxml')
print(soup.encode('utf-8'))
答案 1 :(得分:0)
有时,请求可能会得到错误的编码。对于此站点,我们可以从源中获取正确的编码。
您可以在BeautifulSoup中使用source.encoding='windows-1256'
之前指定类似source.text
的编码。
import requests
BASE_URL = "http://waqfeya.com/book.php?bid=1"
source = requests.get(BASE_URL)
print(source.encoding)
print(source.apparent_encoding)
source.encoding='windows-1256'
print(source.text)
我能够正确获取所有阿拉伯字符。