【问题标题】:how to remove the start of a link and add a forward slash in python如何删除链接的开头并在python中添加正斜杠
【发布时间】:2019-06-24 20:29:09
【问题描述】:

我从网站上删除了一些网络链接,问题是这些链接并不完全正确,因为除非我进行 两个 更改,否则它们不会自动下载数据: p>

1)我一开始就去掉了VM300:1

2) 我在.au 后面放了一个/

有没有办法自动做到这一点?我有大约一千个链接,因此最好不要手动执行此操作。

以下是我的网址的示例

urls = [
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0011/172775/Market_Information_System_Control_daily_trading_day_190130.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0004/172732/Market_Information_System_Control_daily_trading_day_190129.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0010/172675/Market_Information_System_Control_daily_trading_day_190128.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0009/172674/Market_Information_System_Control_daily_trading_day_190127.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0008/172673/Market_Information_System_Control_daily_trading_day_190126.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0007/172672/Market_Information_System_Control_daily_trading_day_190125.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0011/172595/Market_Information_System_Control_daily_trading_day_190124.xlsx"
]

编辑1

from pathlib import Path

import requests

urls = [
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0011/172775/Market_Information_System_Control_daily_trading_day_190130.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0004/172732/Market_Information_System_Control_daily_trading_day_190129.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0010/172675/Market_Information_System_Control_daily_trading_day_190128.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0009/172674/Market_Information_System_Control_daily_trading_day_190127.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0008/172673/Market_Information_System_Control_daily_trading_day_190126.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0007/172672/Market_Information_System_Control_daily_trading_day_190125.xlsx",
    "VM300:1 https://www.powerwater.com.au__data/assets/excel_doc/0011/172595/Market_Information_System_Control_daily_trading_day_190124.xlsx"
]

urls = [x.replace('VM300:1 ','').replace('.au__', '.au/__') for x in urls]


for url in urls:
    r = requests.get(urls)
    with open(Path(urls).name, 'wb') as f:
        f.write(r.content)

错误:

Traceback (most recent call last):
  File "C:/Users/george/Desktop/NT/stack NT.py", line 19, in <module>
    r = requests.get(urls)
  File "C:\Python27\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python27\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 640, in send
    adapter = self.get_adapter(url=request.url)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 731, in get_adapter
    raise InvalidSchema("No connection adapters were found for '%s'" % url)
InvalidSchema: No connection adapters were found for '['https://www.powerwater.com.au/__data/assets/excel_doc/0011/172775/Market_Information_System_Control_daily_trading_day_190130.xlsx', 'https://www.powerwater.com.au/__data/assets/excel_doc/0004/172732/Market_Information_System_Control_daily_trading_day_190129.xlsx', 'https://www.powerwater.com.au/__data/assets/excel_doc/0010/172675/Market_Information_System_Control_daily_trading_day_190128.xlsx', 'https://www.powerwater.com.au/__data/assets/excel_doc/0009/172674/Market_Information_System_Control_daily_trading_day_190127.xlsx', 'https://www.powerwater.com.au/__data/assets/excel_doc/0008/172673/Market_Information_System_Control_daily_trading_day_190126.xlsx', 'https://www.powerwater.com.au/__data/assets/excel_doc/0007/172672/Market_Information_System_Control_daily_trading_day_190125.xlsx', 'https://www.powerwater.com.au/__data/assets/excel_doc/0011/172595/Market_Information_System_Control_daily_trading_day_190124.xlsx']'

谢谢

【问题讨论】:

  • 这个怎么样,[url.split()[-1].replace('__','/') for url in urls]

标签: python pandas numpy urllib


【解决方案1】:

splitreplace 使用列表推导:

urls = [x.split()[1].replace('.au__', '.au/__') for x in urls]

另一个想法是双重replace

urls = [x.replace('VM300:1 ','').replace('.au__', '.au/__') for x in urls]

【讨论】:

  • 或者urls = [x.split()[1].replace('.au__', '.au/') for x in urls],取决于他们需要什么
  • @Shinratensei - 刚刚测试了输出链接,文件下载正确,所以需要__
  • @Shinratensei - 不,谢谢。这也是我的第一个想法,但是链接错误,返回错误页面(Page not found)
  • @newtoR - r = requests.get(urls)r = requests.get(url) 有错字(最后删除 s
  • @newtoR - 还有(Path(url)
猜你喜欢
  • 2014-03-04
  • 2010-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 2014-08-22
相关资源
最近更新 更多