【发布时间】:2015-02-08 11:15:57
【问题描述】:
我必须解析一个 html 页面来寻找其中的链接。不幸的是,这些链接不包含完整的 url(例如以“http://www.example.com/aResource.html”开头)。所以我的解析只得到相对 URL,以获得我正在使用的整个 url 地址
urlparse.urljoin()
但它通常会导致一些连接错误,通常我更喜欢直接提取完整 url 链接的方法。这是我的代码:
import urlparse
import requests
from lxml import html
from lxml import etree
aFile = requests.get(url)
tree = html.fromstring(aFile.text)
linkList = tree.xpath('//a')
urls = []
for link in linkList:
urls.append(str(urlparse.urljoin(url,link.get('href'))))
如您所见,我正在使用 lxml,但我也尝试过使用 BeautifulSoup,但没有成功。
【问题讨论】:
-
@PadraicCunningham 网址是这样的:example.com/path/0VPZUJL06JKS/U09R71.html。并且在链接标签中仅指定了最后一个“/”中的元素
-
@user2567853 你的意思是缺少架构(http://)?
-
@Cld 我的意思是缺少这部分:“example.com/path/0VPZUJL06JKS”
-
这部分不在您的“主要”网址中?在这种情况下,问题不在于代码,而在于甚至无法在浏览器中工作的页面......
标签: python hyperlink html-parsing