爬取的链接中有“./”,请问该如何去掉?

  • i
    ipzh
    正则,
  • a
    andlase
    不要用字符串拼接,直接用url_join就没了
    小尾巴~
  • y
    yxmr
    re.sub
  • f
    fengjianzhi
    谢谢大家。真不好意思。刚开始学,有些问题不知道该怎么搜索。
  • x
    xain
    最后一句换成
    print(each.string, server +each.get('href')[2:])
    HiPDA·NG
  • k
    kkzxak47
    好问题。
    下面函数应该够用了,没考虑更多特例。
    1. #!/usr/bin/env python3
    2. from urllib.parse import urljoin

    3. def parse_url(s):
    4. r = urljoin(s + '/', '.')
    5. if not s.endswith('/'):
    6. r = r[:-1]
    7. return r
    复制代码
    1. >>> parse_url("http://www.yqbb.gov.cn/gzdt/./201907/t203948392_9234.html")
    2. 'http://www.yqbb.gov.cn/gzdt/201907/t203948392_9234.html'
    复制代码



    另外学编程多Google,类似问题已经被解决了一遍又一遍:https://stackoverflow.com/questi ... ing-superflous-dots。能用看英文就尽量看英文资料,质量高。
  • h
    hjie
    相对地址转绝对地址,上面有兄弟说了 用urljoin()

    https://www.jianshu.com/p/20065f9b39bb