无法通过python从URL获取内容

时间:2015-12-17 05:54:55

标签: python beautifulsoup

我尝试使用python和BeautifulSoup从中文网页获取内容。但是当我打印结果时,我在控制台中什么都没有。所以,有人可以告诉我为什么吗?(​​ps:我也改变了一些其他网页,有时代码有效,但有时它不会   这是我的代码:

# _*_ coding:utf-8 _*_
from bs4 import BeautifulSoup
import urllib2
import urllib
import urllib2

url='http://finance.sina.com.cn/chanjing/cyxw/2015-12-17/doc-ifxmttcn4893506.shtml'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
try:
  request=urllib2.Request(url)
  response=urllib2.urlopen(request)
  html=response.read()
  content=BeautifulSoup(response)
  print content
except  urllib2.URLError,e:
   if hasattr(e,"code"):
      print e.code
   if hasattr(e,"reason"):
      print e.reason

这是我的结果: enter image description here`

2 个答案:

答案 0 :(得分:2)

尝试

content=BeautifulSoup(html)

答案 1 :(得分:0)

试试这个:

;;****TEMPLATES*****

(deftemplate pc
(slot tipo)
(slot oc)
(multislot procesador)
(multislot ram)
(multislot placabase)
(multislot discoduro)
(multislot grafica)
(multislot fuente)
(slot precio))

;;****FUNCTIONS*****

(deffunction pregunta (?pregunta $?respuestas-posibles)
   (printout t ?pregunta)
   (bind ?respuesta (read))
   (if (lexemep ?respuesta) 
    then (bind ?respuesta (lowcase ?respuesta)))
   (while (not (member ?respuesta ?respuestas-posibles)) do
      (printout t ?pregunta)
      (bind ?respuesta (read))
      (if (lexemep ?respuesta) 
          then (bind ?respuesta (lowcase ?respuesta))))
   ?respuesta)

(deffunction sino (?pregunta)
   (bind ?respuesta (pregunta ?pregunta si no s n))
   (if (or (eq ?respuesta si) (eq ?respuesta s))
       then TRUE 
       else FALSE))

(deffunction tipo (?pregunta)
   (bind ?respuesta (pregunta ?pregunta g d o))
   (switch ?respuesta
        (case g then (return g))
        (case d then (return d))
        (case o then (return o))
        ))


;;******FACTS*******

(deffacts inicia
    (pc))


;;******RULES*******


(defrule tipopc
?A <- (pc (procesador)(ram)(placabase)(discoduro)(grafica)(fuente))
=>
(switch (tipo "Tipo (juegos:g/diseño:d/otros:o)? ")
    (case g then ( modify ?A (tipo g)(oc nose)(procesador "i5 4690_Intel")
    (ram "2x4GB 2133 cl9")
    (placabase "Gigabyte_H97M-HD3 ejemplo")
    (discoduro "1Tb")
    (grafica "GTX 960")
    (fuente "700W+ silver")
    (precio 550)))
    (case d then ( modify ?A (tipo d)(oc nose)(procesador "i7 4790_Intel")
    (ram "2x8GB 2133 cl9")
    (placabase "Gigabyte_H97M-HD3 ejemplo")
    (discoduro "1Tb HDD + 120gb SSD")
    (grafica "kuadro k620")
    (fuente "700W+ silver")
    (precio 700)))
    (case o then ( modify ?A (tipo o)(oc nose)(procesador "i3 6100_Intel")
    (ram "2x4GB 2400 cl12 DDR4")
    (placabase "Msi H110M PRO-VH")
    (discoduro "1Tb")
    (grafica "no incluida")
    (fuente "450W+ bronze")
    (precio 300)))))

(defrule oc
    ?A <- (pc(tipo g)(oc nose))
    =>
    (if (sino "Hará overclock al procesador (si/no)?: ")
    then ( modify ?A (oc si)))
)

(defrule preciogamingoc
?A <- (pc (tipo g) (oc si) (procesador) (ram) (placabase) (discoduro) (grafica) (fuente))
=>
    (printout t "Veo que su sistema será destinado a juegos y que además se le podrá hacer overclock." crlf
    "Ahora debe introducir el presupuesto medio para que podamos darle una configuración mas concreta." crlf
    "Introduzca su presupuesto de referencia(>= 750): ")
    (bind ?precio (read))
    (if (and(>= ?precio 750)(< ?precio 850))
    ;;then ((printout t "bien"crlf))
    then (modify ?A (procesador "i5 4690K_Intel")
    (ram "2x8GB 2133 cl9")
    (placabase "Gigabyte_Z97X gaming 3 ejemplo")
    (discoduro "1Tb")
    (grafica "GTX 970")
    (fuente "700W+ silver")
    (precio 750)))
    ;;(else (if (>= ?precio 850)
    ;;then (modify ?C (procesador "i7 4790K_Intel")
    ;;(ram "2x8GB 2133 cl9")
    ;;(placabase "Gigabyte_Z97X gaming 5 ejemplo")
    ;;(discoduro "1Tb HDD")
    ;;(grafica "GTX 970")
    ;;(fuente "700W+ silver")
    ;(precio 850))))
)


;;*******MAIN*******

(defrule inicio
  (declare (salience 1))
  =>
  (printout t crlf)
  (printout t "Sistema Experto de Configuracion de Ordenadores")
  (printout t crlf crlf))

  (defrule presupuesto
   (declare (salience -1))
   (pc (procesador ?A)(ram ?F)(placabase ?B)(discoduro ?M)(grafica ?G)(fuente ?P)(precio ?O))
   =>
   (printout t crlf crlf "-.PRESUPUESTO.-" crlf crlf)
   (printout t "PROCESADOR: " ?A crlf)
   (printout t "RAM: " ?F crlf)
   (printout t "PLACA BASE: " ?B crlf)
   (printout t "DISCO DURO:" ?M crlf)
   (printout t "GRAFICA: " ?G crlf)
   (printout t "FUENTE: " ?P crlf crlf)
   (printout t "PRECIO: " ?O crlf)
   )