为什么用非英语URL抓取波斯网站会产生错误?

问题描述 投票:0回答:2

我正在尝试使用以下代码抓取波斯网站:

import urlparse, urllib
parts = urlparse.urlsplit(u'http://fa.wikipedia.org/wiki/صفحهٔ_اصلی')
parts = parts._replace(path=urllib.quote(parts.path.encode('utf8')))
encoded_url = parts.geturl().encode('ascii')
'https://fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C'

我在运行搜寻器时在提示符下收到此错误消息:

ModuleNotFoundError:没有名为urlparse的模块

并且在VS Code中,有三个带下划线的单词。当我单击它们时,将显示以下错误消息:

  1. 无法导入'scrapy'
  2. 无法导入'urlparse'
  3. 模块'urllib'没有引号成员

我的代码有什么问题?

python url scrapy
2个回答
0
投票

通过您没有的错误消息,请转到各自的站点并查看如何安装。

1 Note for urlparse change现在被命名为urllib.parse而不是urlparse

2 Scrapy


0
投票
import urllib.parse
parts = urllib.parse.urlsplit(u'http://fa.wikipedia.org/wiki/صفحهٔ_اصلی')
parts = parts._replace(path=urllib.parse.quote(parts.path.encode('utf8')))
encoded_url = parts.geturl().encode('ascii')
'https://fa.wikipedia.org/wiki/%D8%B5%D9%81%D8%AD%D9%87%D9%94_%D8%A7%D8%B5%D9%84%DB%8C'

print(encoded_url)

此代码在python 3. *环境中运行,因为urlparse库已被urllib.parse取代

© www.soinside.com 2019 - 2024. All rights reserved.