为什么lxml.html.parse()末尾的斜杠重要?

1 投票
1 回答
537 浏览
提问于 2025-04-17 13:06

我正在用lxml来抓取网页的内容。这段代码可以正常运行。

lxml.html.parse( "http://google.com/" )

但是这段代码就不行。

lxml.html.parse( "http://google.com" )

为什么网址最后的斜杠会有影响呢?谢谢。

为了更清楚,这里是python在运行后给我的错误日志。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/davidfaux/epd-7.2-2-rh5-x86/lib/python2.7/site-packages/lxml/html/__init__.py", line 692, in parse
    return etree.parse(filename_or_url, parser, base_url=base_url, **kw)
  File "lxml.etree.pyx", line 2953, in lxml.etree.parse (src/lxml/lxml.etree.c:56204)
  File "parser.pxi", line 1533, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:82287)
  File "parser.pxi", line 1562, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:82580)
  File "parser.pxi", line 1462, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:81619)
  File "parser.pxi", line 1002, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:78528)
  File "parser.pxi", line 569, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:74472)
  File "parser.pxi", line 650, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:75363)
  File "parser.pxi", line 588, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:74665)
IOError: Error reading file 'http://google.com': failed to load HTTP resource

1 个回答

1

因为如果没有那个斜杠,谷歌就不是在给你发送一个页面,而是在给你发送一个重定向。实际上,它是在把你引导到带有斜杠的那个网址上!重定向的内容可能是空的。

撰写回答