scrapy 为什么抓取一个带有非英语URL的波斯语网站会产生错误?

jchrr9hc  于 2022-11-09  发布在  其他
关注(0)|答案(3)|浏览(118)

我试图刮一个波斯语网站与以下代码:

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'

当我运行Crawler时,在提示符中出现以下错误消息:
未找到模块错误:没有名为urlparse的模块
而在VS代码中有三个带下划线的单词。当我点击它们时,显示了以下错误信息:
1.无法导入“scrapy”
1.无法导入“urlparse”
1.模块'urllib'没有引号成员
我的代码有什么问题?

cs7cruho

cs7cruho1#

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所取代。

vfhzx4xs

vfhzx4xs2#

通过错误信息,你没有他们,去他们各自的网站,看看如何安装.
1 Note for urlparse change它现在被命名为urllib。解析不是urlparse
2个Scrapy

7nbnzgx9

7nbnzgx93#

您只应使用此选项:

馈送导出编码=“UTF-8”

在您的settings.py文件中。

相关问题