安装lxml etree出错,能帮我看看哪出问题了吗

写了一个爬虫,用了BeautifulSoup解析html。要查找html中的第二个table。本来结果都对。想试试lxml。就安装lxml后把soup = BeautifulSoup(html)#html.parser,lxml换成了soup = BeautifulSoup(html,'lxml')。于是解析出错了。再换成soup = BeautifulSoup(html,"html.parser")又对了。换回lxml,又错。看来lxml是问题所在。出错部分的代码是:tables = soup.findAll('table',class_='tableList')
table = tables[1]
#就是这行报错
报错信息:Traceback (most recent call last):
File "parse.py", line 43, in &module&
l = parse_data(open('3.html',encoding='utf8'))
File "parse.py", line 15, in parse_data
table = tables[1]IndexError: list index out of range为什么换成lxml就越界了,难道lxml的解析规则不一样?
这个官方文档上有说明的,不同的解析器之间是有差异的。以下来自官方文档:解析器之间的区别Beautiful Soup为不同的解析器提供了相同的接口,但解析器本身时有区别的.同一篇文档被不同的解析器解析后可能会生成不同结构的树型文档.区别最大的是HTML解析器和XML解析器,看下面片段被解析成HTML结构:BeautifulSoup("&a&&b /&&/a&")
# &html&&head&&/head&&body&&a&&b&&/b&&/a&&/body&&/html&
因为空标签&b /&不符合HTML标准,所以解析器把它解析成&b&&/b&同样的文档使用XML解析如下(解析XML需要安装lxml库).注意,空标签&b /&依然被保留,并且文档前添加了XML头,而不是被包含在&html&标签内:BeautifulSoup("&a&&b /&&/a&", "xml")
# &?xml version="1.0" encoding="utf-8"?&
# &a&&b/&&/a&
HTML解析器之间也有区别,如果被解析的HTML文档是标准格式,那么解析器之间没有任何差别,只是解析速度不同,结果都会返回正确的文档树.但是如果被解析文档不是标准格式,那么不同的解析器返回结果可能不同.下面例子中,使用lxml解析错误格式的文档,结果&/p&标签被直接忽略掉了:BeautifulSoup("&a&&/p&", "lxml")
# &html&&body&&a&&/a&&/body&&/html&
使用html5lib库解析相同文档会得到不同的结果:BeautifulSoup("&a&&/p&", "html5lib")
# &html&&head&&/head&&body&&a&&p&&/p&&/a&&/body&&/html&
html5lib库没有忽略掉&/p&标签,而是自动补全了标签,还给文档树添加了&head&标签.使用pyhton内置库解析结果如下:BeautifulSoup("&a&&/p&", "html.parser")
库类似的,Python内置库忽略掉了&/p&标签,与html5lib库不同的是标准库没有尝试创建符合标准的文档格式或将文档片段包含在&body&标签内,与lxml不同的是标准库甚至连&html&标签都没有尝试去添加.因为文档片段“&a&&/p&”是错误格式,所以以上解析方式都能算作”正确”,html5lib库使用的是HTML5的部分标准,所以最接近”正确”.不过所有解析器的结构都能够被认为是”正常”的.不同的解析器可能影响代码执行结果,如果在分发给别人的代码中使用了 BeautifulSoup ,那么最好注明使用了哪种解析器,以减少不必要的麻烦.
计算机/音乐/电影爱好者。c语言求哪位大侠帮我看看我这个程序哪里出问题了_百度知道
c语言求哪位大侠帮我看看我这个程序哪里出问题了
平均成绩是:%d\stdio,a+b+c);getch();scanf(&quot:&请输入数学成绩;.h&scanf(&quot本题是求5个同学的3门成绩的总成绩和平均成绩的#include &quot,&b);printf(&printf(&请输入英语成绩;第%d名学生成绩输入&#92,b;%d&main(){}printf(&%d&printf(&n&scanf(&d&3):&总成绩是;);=5;printf(&d++) { printf(&n&,&z);scanf(& for (d=1,c;:&%c&请输入姓名;n&\):%d\):&,&c); char z,d;;printf(&quot,(a+b+c)&#47,d););%d&;请输入语文成绩,&a);;n&printf(&)
h&quot:%d&#92,a+b+c);printf(&;),&a);scanf(&quot,但是运行会有问题;;请输入数学成绩;,&b);printf(&getch():%d\int main(){);scanf(&%c&%d&n& for (d=1;第%d名学生成绩输入&#92,b;n&}可以编译通过;%d&stdio,d:&总成绩是;return 0;d&;请输入英语成绩;%d&);3);=5;\);printf(&d++) { printf(&请输入姓名;}printf(&scanf(&n&quot:&quot,&z);:&quot,d),(a+b+c)&#47,c:&;);n&scanf(&quot,&c);平均成绩是;printf(&请输入语文成绩;;printf(&printf(&quot#include &quot,最好用数组去表示不同的人的姓名.h&#include &quot
其他类似问题
为您推荐:
其他5条回答
printf(&quot:&quot,a+b+c);%c&请输入英语成绩;;还有姓名怎么能是printf(&);printf(&请输入语文成绩:&}getch();n&quot,b,c;%d&,&z),&a);;=5;,d;);d&lt,最后该return0,&c); for (d=1;scanf(&n&是什么;d++) { printf(&printf(&),&b);%d&}printf(&第%d名学生成绩输入\n&return 0:&n&);\,d);scanf(&请输入数学成绩;printf(&scanf(&请输入姓名;3);scanf(&quot,(a+b+c)/%d&;;总成绩是:%d\平均成绩是;);printf(&quot:%d&#92:&quot#include &quot,那样只能输入一个英文字符.h&main(){ int a
好久不写C了,觉得这个有点不对劲:scanf(&%d&,&z);似乎应该直接写成:scanf(&%d&, z);
计算平均数时需要转换成浮点型数据。将printf(&平均成绩是:%d\n&,(a+b+c)/3); 改为printf(&平均成绩是:%f\n&,(a+b+c)/3.0);
加上#include &conio.h&
应该是void
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁显示出问题了,请高手们帮帮我看看这是什么回事,为什么会这样_百度知道
显示出问题了,请高手们帮帮我看看这是什么回事,为什么会这样
但看其他人士不会这样的——很顺请教一个问题;而像CS和战地等游戏会卡的人物在定点前后前后地闪——不能移动,那些兵会一幅一幅地显示,后又会这样。但在重启后会有一段时间恢复正常,有些装了后就像重启一样,用鼠标或键盘移动视野会一下子跳到地图的边缘,有一段时间正常。其他游戏甚至会显示错误并自己退出),结果,而且开机时间长了会连想征途这样的2D游戏也有卡。已经试过重装显卡,有些显示安装错误:如果电脑在启动一段时间后显示3D的东西会很卡(魔兽——冰封王座
我的电脑配置可以支持这几种游戏的配置:黑金刚DDR2 667 1G
显卡昂达7300GT 256M 狂飚版
CPU AMD AM2 速龙 4400+(940)
我的显卡没有风扇
提问者采纳
一共是五个文件,安次序安装一下,有可能是没有安装AMD双核的补丁到网上找一下看看你的机器是不是AM2的双核CPU如果是的话,重启机器就应该好了再就是打开机箱
提问者评价
太谢谢你了,装了补丁后没事了能拿到你的QQ吗?我想问一下那些补丁有什么用还有出现这些问题的原因
其他类似问题
为您推荐:
其他4条回答
3D的游戏本来就不是那么稳定的说.肯定会囿卡的时候啦涐玩CS囿是也会这样.玩3D时别开那么多软件.Q也别开那么多
是不是散热有问题啊
先查一查有没有吃内存的病毒和木马吧!有些木马会在开机后慢慢占用内存的,导致很卡
你应该抱下你的配置
我们才知道撒 不过多半是内存和显卡 太低
您可能关注的推广回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁谁帮我看看电脑logs日志,哪里出错了。。。安装软件1935错误。
23:4_百度知道
谁帮我看看电脑logs日志,哪里出错了。。。安装软件1935错误。
谁帮我看看电脑logs日志,哪里出错了。。。安装软件1935错误。 23:42:34, Info
[SR] Verify complete 23:42:34, Info
[SR] Verifying 100 (0x0064) components 23:42:34, Info
[SR] Beginning Verify and Repair transaction 23:42:34, Error
(F) STATUS_OBJECT_NAME_NOT_FOUND #6007752# from Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile(flags = (AllowSharingViolation), handle = {provider=NULL, handle=0}, da = (SYNCHRONIZE|FILE_READ_ATTRIBUTES), oa = @0xe5c730-&OBJECT_ATTRIBUTES {s:48; rd:NULL; on:[122]&\??\C:\Windows\WinSxS\amd64_microsoft-windows-i..e-trigramdictionary_31bf_6.1._none_12d6b2e&; a:(OBJ_CASE_INSENSITIVE)}, iosb = @0xe5c710, as = (null), fa = 0, sa = (FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE), cd = 俯处碘肺鄢镀碉僧冬吉FILE_OPEN, co = (FILE_SYNCHRONOUS_IO_NONALERT|0x), eab = NULL, eal = 0, disp = Invalid)[gle=0xd0000034] 23:42:34, Error
5/6/17:15:42:34.889 (F) d:\win7sp1_gdr\base\wcp\sil\merged\ntu\ntsystem.cpp(2057): Error STATUS_OBJECT_NAME_NOT_FOUND originated in function Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile expression: (null)[gle=0x] 23:42:34, Error
(F) STATUS_OBJECT_NAME_NOT_FOUND #6007751# from Windows::Rtl::SystemImplement
我有更好的答案
什么软件?
安装CAD出现错误1935
这个地址湿了。。。修改到百分之24就结束了
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁lxml安装的问题
[问题点数:80分,结帖人healer_kx]
lxml安装的问题
[问题点数:80分,结帖人healer_kx]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 lxml 安装 的文章

 

随机推荐