LXML Impossibile recuperare la pagina Web con errore "Impossibile caricare la risorsa HTTP"
Domanda
Ciao, quindi ho provato a aprire il link sottostante in un browser e funziona ma non nel codice.Il collegamento è in realtà una combinazione di un sito di notizie e quindi l'estensione dell'articolo chiamato da un altro file url.txt.Ho provato il codice con un sito Web normale (www.google.com) e funziona perfettamente.
import sys
import MySQLdb
from mechanize import Browser
from bs4 import BeautifulSoup, SoupStrainer
from nltk import word_tokenize
from nltk.tokenize import *
import urllib2
import nltk, re, pprint
import mechanize #html form filling
import lxml.html
with open("url.txt","r") as f:
first_line = f.readline()
#print first_line
url = "http://channelnewsasia.com/&s" + (first_line)
t = lxml.html.parse(url)
print t.find(".//title").text
.
E questo è l'errore che sto ottenendo.
E questo è il contenuto di url.txt
/news/asiapacific/australia-to-send-armed/1284790.html
Soluzione
Questo è dovuto alla parte &s
dell'URL - non è sicuramente necessario:
url = "http://channelnewsasia.com" + first_line
.
Inoltre, le parti dell'URL sono migliori ad essere unite utilizzando urljoin()
:
from urlparse import urljoin
import lxml.html
BASE_URL = "http://channelnewsasia.com"
with open("url.txt") as f:
first_line = f.readline()
url = urljoin(BASE_URL, first_line)
t = lxml.html.parse(url)
print t.find(".//title").text
.
Stampe:
Australia to send armed personnel to MH17 site - Channel NewsAsia
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow