python 3 爬虫防坑手册——常更

来源:互联网 发布:.shop域名上线时间 编辑:程序博客网 时间:2024/05/16 12:25

ps:这篇文章是针对python3的哟,python2部分适用。

写在前面

在这篇文章中我会列出一些我在编写爬虫的过程中遇到的一些问题,虽然自己写爬虫蛮久的了,但是总感觉一段时间不写就会遇到一些问题。一些看似老旧的问题,我有胆打赌,那些细节问题我之前肯定处理过并且处理的很好。现在呢,有点无奈,又开始写爬虫的时候对那些接口却倍感陌生,可能是以前了解不够深入,理解不够彻底。

接下来的每一个问题,我都会认认真真的分析它。从文档到源代码,正确彻底理解实现的思路和过程。不要放过这些细节的小问题。

问题列表

网站拼接

from urllib.parse import urljoinurl = urljoin(base='http://localhost:8080', url='/test')print(url)

这里如果不再localhost前面加上协议名称,函数将之返回‘/test’。翻开源代码,在实现过程中有调用urlparse对base和url参数进行解析,解析可得base的协议名schemes。这里urljoin支持的协议包括

# A classification of schemes ('' means apply by default)uses_relative = ['ftp', 'http', 'gopher', 'nntp', 'imap',                 'wais', 'file', 'https', 'shttp', 'mms',                 'prospero', 'rtsp', 'rtspu', '', 'sftp',                 'svn', 'svn+ssh']

所以如果你不在base前面加上协议名,函数将无法判断链接所属的协议,故将直接返回后面的url。

0 0
原创粉丝点击