LXML impossible de récupérer cette page avec l'erreur “impossible de charger HTTP ressources”
Question
Salut, alors j'ai essayé d'ouvrir le lien ci-dessous dans un navigateur, et il fonctionne, mais pas dans le code.Le lien est en fait une combinaison d'un site d'actualité et puis le prolongement de l'article appelle à partir d'un autre fichier url.txt.J'ai essayé le code avec un site web normal (www.google.com) et il fonctionne parfaitement.
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
Et c'est l'erreur que j'obtiens.
Et c'est le contenu de url.txt
/news/asiapacific/australia-to-send-armed/1284790.html
La solution
C'est à cause de la &s
la partie de l'url - ce n'est certainement pas nécessaire:
url = "http://channelnewsasia.com" + first_line
Aussi, url parties sont mieux être joint à l'aide 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
impressions:
Australia to send armed personnel to MH17 site - Channel NewsAsia
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow