2016-09-28 45 views
-1
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) 

而運行上面的代碼這個錯誤來了。任何解決方案MissingSchema:URL'/'無效:未提供架構。也許你的意思是http:///?

MissingSchemaTraceback(最新最後調用)

MissingSchema:無效的URL '/':沒有提供的模式。也許你的意思是http:///

+0

什麼是您嘗試訪問的URL? 'requests.get()'抱怨URL不以'http:'或'https:'開頭。 –

+0

看到我的完整代碼#編輯 –

回答

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

這些HREF不是完整的URL;它們本質上只是路徑名(即/foo/bar/thing.html)。

當您在瀏覽器中點擊其中一個鏈接時,瀏覽器足夠智能,可以將當前頁面的方案和主機名(即https://host.something.com)預先添加到這些路徑中,製作完整的URL。

但是你的代碼沒有這樣做;您正嘗試使用原始HREF值。

稍後在您的程序中,您可以使用urljoin()來解決此問題,但是您在for l in l1:循環中沒有這樣做。 爲什麼不呢?

+0

實際上 urls = root.xpath('// div [1]/header/div [3]/nav/ul/li/a/@ href')是將主要內容鏈接體育,商業,世界 and urls = root.xpath('// div [@ class =「media-body」] // @ href')用於報廢新聞內容鏈接 然後我終於加入做一個完整的鏈接。因爲報紙鏈接每天都在改變... 我已經做了與其他新聞網站和它的工作正常,但對於這個網站..上述錯誤來了...怎麼辦? –

+0

_然後我最後加入它來創建一個完整的link_在第一個for'循環中你可以調用'requests.get(l)',你不這樣做。我的答案不清楚嗎? –

+0

現在瞭解,現在正在工作......一個更多的幫助....我希望標題和文章應該在gui中打開。怎麼做?? –

相關問題