【问题标题】:Removing white space from URL Python从 URL Python 中删除空格
【发布时间】:2022-01-20 00:17:07
【问题描述】:

我有一个开头有空格的 URL。在将其传递给 urllib.request.urlretrieve 之前,我必须将其删除。

pdflink = ' https://www.doj.nh.gov/consumer/security-breaches/documents/a2z-field-services-20201218.pdf'

但是,我无法删除它。

到目前为止我所尝试的:

  1. pdflink.lstrip() : 不工作,我不知道为什么?
  2. pdflink.replace(' ', ''):不工作

知道如何删除它吗?

我的最终代码:

import openpyxl

wb = openpyxl.load_workbook('Data.xlsx')
ws = wb['Final']

pdflink = (ws.cell(row=4487,column=4).value).lstrip()

# pdflink will have value as shown below:
#pdflink = ' https://www.doj.nh.gov/consumer/security-breaches/documents/a2z-field-services-20201218.pdf'
try:
        urllib.request.urlretrieve(pdflink, 'test')
        return True
except FileNotFoundError:
        print(filename + ' Not present')
        return False

运行上面的代码会抛出错误: URLError: urlopen 错误未知 url 类型:  https

错误的根本原因:URL 开头有额外的空格。

【问题讨论】:

  • print(ord(pdflink[0])) 打印什么?

标签: python web-scraping openpyxl


【解决方案1】:

这不仅仅是一个空间。您有一些非打印特殊字符作为第一个字符。我不知道是哪一个,但是当我从你的帖子中剪切和粘贴时,我得到了一个额外的字符。你可以试试print(ord(pdflink[0])) 看看它是什么。您可能需要使用pdflink = pdflink[2:] 将其清除。或者,搜索http

    i = pdflink.find('http')
    pdflink = pdflink[i:]

【讨论】:

  • 感谢您的回答和很好的解释。这与 opepyxl 完美结合。
【解决方案2】:

在空格之前的那个链接中实际上有一个 unicode 字符FEFF。你看不到它,但它破坏了你的lstrip

你可以看到here

我建议使用pdflink.split(' ')[-1]

【讨论】:

    【解决方案3】:

    字符串的开头可能有一些奇怪的字符 - 我会尝试使用指定的 encoding="UTF-8" 打开您尝试读取的文件。

    我还使用pdflink.lstrip(" ") 解决了这个问题,在引号内我从原始字符串中复制粘贴了非空格内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-20
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多