MissingSchema:无效的网址'/':未提供架构。也许你的意思是http:///?

时间:2016-09-28 19:24:08

标签: python

for l in l1:
r = requests.get(l)
html = r.content
root = lxml.html.fromstring(html)   
urls = root.xpath('//div[@class="media-body"]//@href')
l2.extend(urls)

在运行上面的代码时出现此错误。任何解决方案??

MissingSchemaTraceback(最近一次呼叫最后一次)

MissingSchema:无效的网址'/':未提供架构。也许你的意思是http:///

1 个答案:

答案 0 :(得分:0)

urls = root.xpath('//div[1]/header/div[3]/nav/ul/li/a/@href')

这些HREF不是完整的网址;它们基本上只是路径名(即/foo/bar/thing.html)。

当您在浏览器中单击其中一个链接时,浏览器足够智能,可以将当前页面的方案和主机名(即https://host.something.com)添加到这些路径中,从而生成完整的URL。

但你的代码并没有这样做;你正试图使用​​原始的HREF值。

稍后在您的程序中,您使用urljoin()来解决此问题,但您没有在for l in l1:循环中执行此操作。 为什么不呢?