将爬取网页中的相对路径转换为绝对路径
1.背景:
在爬取网页中的过程中,我对目前爬虫项目后端脚本中拼接得到绝对路径的方法很不满意,今天很无意了解到在python3 的 urllib.parse模块对这个问题有着非常完善的解决策略,真的是上天有眼,感动!
2.urllib.parse模块
This module defines a standard interface to break Uniform Resource Locator (URL) strings up in components (addressing scheme, network location, path etc.), to combine the components back into a URL string, and to convert a “relative URL” to an absolute URL given a “base URL.”
根据Python官网文档,我们可以大致了解到这个模块的3个主要功能,一是将URL分解为各个部分,二是将URL各个部分拼接成URL,三是将一个相对路径转换成绝对路径。
我们主要用它的第三个功能,使用的函数是
urllib.parse.urljoin(base, url, allow_fragments=True)
3.代码实现例子:
代码:
from urllib import parse
page_url = 'http://fcg.gxepb.gov.cn/ztzl/hjwfbgt/'
new_url = '../../hjzf/xzcf/201811/t20181102_46347.html'
new_full_url = parse.urljoin(page_url, new_url)
print(new_full_url)
结果为:
http://fcg.gxepb.gov.cn/hjzf/xzcf/201811/t20181102_46347.html
可以说是相当棒了!
4.官方相关文档链接:
urllib.parse — Parse URLs into components
感谢:转自将爬取网页中的相对路径转换为绝对路径