首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络爬虫能区分编码吗?

网络爬虫能区分编码吗?
EN

Stack Overflow用户
提问于 2018-07-12 10:08:54
回答 1查看 234关注 0票数 1

网络爬虫能区分编码吗?

我正在建一个爬虫来收集一些数据。然而,它看起来我正在搜索的网站没有正确编码;字符集是utf-8,但部分文本似乎是拉丁文1。

例如,您可以运行下面的代码。我将使用一个波兰名字和一个西班牙名字,两者都有特殊的字符作为例子。如果我复制粘贴并打印它们,utf-8中的IDE将正确地打印它们.然而,如果我从网站上刮来的话,禤浩焯的名字就不能正确地打印出来。但如果我用拉丁文-1对字符串进行编码,它会的。

所以我想网站上的一些文字不是utf-8,而是拉丁文。问题是如何告诉我的爬虫是否需要用拉丁文对文本进行编码?如果我试图编码所有的东西,像Pawel的返回错误之类的名字。我该试试吗?

代码语言:javascript
复制
# coding = utf-8
from bs4 import BeautifulSoup 
import requests

user_agent = {'User-agent': 'Mozilla/5.0'}

def download_soup(url):
    response = requests.get(url, headers=user_agent)
    page = response.text
    soup = BeautifulSoup(page, 'lxml')
    return soup

print('utf-8 : Paweł Cieślik')
print('utf-8 : Adrián González')
pawel_soup = download_soup('https://www.procyclingstats.com/rider/pawel-cieslik').find('title').text
adrian_soup = download_soup('https://www.procyclingstats.com/rider/adrian-gonzalez').find('title').text
print('web original encoding : '+pawel_soup)
print('web original encoding : '+adrian_soup)
print('web latin encoding : '+adrian_soup.encode('latin-1').decode('utf-8'))

返回

代码语言:javascript
复制
utf-8 : Paweł Cieślik
utf-8 : Adrián González
web original encoding : Paweł Cieślik
web original encoding : Adrián González
web latin encoding : Adrián González
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-12 10:50:50

对于尝试用拉丁语编码unicode时出现的错误,可以传递参数以忽略它:

代码语言:javascript
复制
pawel_soup.encode('latin-1', errors='ignore').decode('utf-8')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51302839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档