【问题标题】:lxml - Translate from indirect url to direct urllxml - 从间接 url 转换为直接 url
【发布时间】:2018-07-11 13:13:16
【问题描述】:

我正在使用 python 和 lxml 来收集一些网络数据。

如果我有一些元素:

import requests
from lxml import html

r = requests.get(url)
tree = html.fromstring(r.text)
file_ = tree.xpath('some_xpath')[0]
url=file_.attrib['href'] #element

这会产生类似的东西:

../Document1/Document2.aspx?No=123456

我的基本网址是这样的:

http://www.foo.com/

我可以只添加基本 url 并清除间接前导句点,但必须有更好的方法。

感谢您的任何意见。

【问题讨论】:

  • Python 2 还是 3?恭喜你,你正在以不同寻常的方式处理这个问题。
  • python 2. 请问,解决这个问题的常用方法是什么?

标签: python web-scraping lxml


【解决方案1】:

对于 Python 2,它是:

from urlparse import urljoin
abs = urljoin(base, rel)

【讨论】:

  • 那么,我需要知道基数吗?有没有动态的方法可以直接从解析的对象中获取?
  • 这不起作用,并产生:foo.com/../Document1/Document2.aspx?No=123456
  • 这实际上是正确的行为,信不信由你。
  • 谢谢。我会接受作为正确答案。 Fwiw:当我通过 url 中的前导句点时,我的页面特别有一个错误。一旦我把它们剥离出来,它就可以正常工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
  • 2018-01-30
  • 2021-09-21
  • 2019-01-03
  • 2014-02-17
  • 1970-01-01
相关资源
最近更新 更多