在python中解析html时出现问题

时间:2019-02-23 04:15:33

标签: python beautifulsoup

在制作脚本从网址中提取标题时遇到此错误。 (编辑;应该添加我已确保安装了python 3并已全部安装了request,lxml和beautiful soup模块)

  

UserWarning:未明确指定解析器,因此我正在为此系统使用最佳的HTML解析器(“ lxml”)。通常这不是问题,但是如果您在另一个系统或不同的虚拟环境中运行此代码,则它可能使用不同的解析器,并且行为不同。导致此警告的代码在news.py文件的第9行。要消除此警告,请将附加参数'features =“ lxml”'传递给BeautifulSoup构造函数。汤= BeautifulSoup(r.text)

`import requests
from bs4 import BeautifulSoup
import lxml



url = 'http://www.news.google.com'
r = requests.get(url)
soup = BeautifulSoup(r.text)



for story_heading in soup.find_all(class_="story-heading"):
    print()`

1 个答案:

答案 0 :(得分:0)

请在您的终端机/ cmd中执行 var express = require('express'), app = express(), http = require('http').createServer(app), io = require('socket.io').listen(http); http.listen(process.env.PORT || 3000); console.log('Serwer wystartował na porcie: 3000'); //obsługa połączeń app.use(express.static(__dirname + '/client')); var gracze = []; //funkcja tworząca graczy function nowyGracz() { this.nazwa; this.id = 1; this.x = Math.random() * 500; this.y = Math.random() * 500; //losowe kolory var r = Math.random()*255>>0; var g = Math.random()*255>>0; var b = Math.random()*255>>0; this.kolor = "rgba(" + r + ", " + g + ", " + b + ", 0.5)"; this.promien = 30; this.predkosc = 2; return {'nazwa' : this.nazwa,"x" : this.x,"y" : this.y,"kolor" : this.kolor, "promien" : this.promien,"predkosc" : this.predkosc} } //połączenie do serwera i obsluga polaczen kazdego nowego gracza io.sockets.on('connection', function(socket){ var gracz = new nowyGracz(); //nowy gracz gracze.push(gracz); //wrzuc gracza do tablicy //tablica z graczami socket.broadcast.emit('currentUsers', gracze); socket.emit('welcome', gracz, gracze); //rozłączono socket.on('disconnect', function(){ gracze.splice(gracze.indexOf(gracz), 1); console.log(gracze); socket.broadcast.emit('graczWyszedl', gracze); }); socket.on('wcisniety', function(przycisk){ if(przycisk === 38 || przycisk === 87){ gracz.y -= gracz.predkosc; socket.emit('PlayersMoving', gracze); socket.broadcast.emit('PlayersMoving', gracze); } if(przycisk === 40 || przycisk === 83){ gracz.y += gracz.predkosc; socket.emit('PlayersMoving', gracze); socket.broadcast.emit('PlayersMoving', gracze); } if(przycisk === 37 || przycisk === 65){ gracz.x -= gracz.predkosc; socket.emit('PlayersMoving', gracze); socket.broadcast.emit('PlayersMoving', gracze); } if(przycisk === 39 || przycisk === 68){ gracz.x += gracz.predkosc; socket.emit('PlayersMoving', gracze); socket.broadcast.emit('PlayersMoving', gracze); } }); }); ,以解决此问题。

您可以使用pip install lxmllxml other 查看区别HERE

示例:

html.parser

除了soup = BeautifulSoup(r.text, 'lxml') 之外,您还可以从文档中选择一个适合您的需求。

示例(如果我们要使用'lxml'

html5lib