LXML impossible de récupérer cette page avec l'erreur “impossible de charger HTTP ressources”

StackOverflow https://stackoverflow.com//questions/25007501

  •  20-12-2019
  •  | 
  •  

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.

enter image description here

Et c'est le contenu de url.txt

/news/asiapacific/australia-to-send-armed/1284790.html

Était-ce utile?

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
scroll top