你好!我有这个脚本:
URL = "http://www.hitmeister.de/"
page = urllib2.urlopen(URL).read()
soup = BeautifulSoup(page)
links = soup.findAll('a')
for link in links:
print link['href']
这应该从网页中获取链接,但它没有,可能是什么问题?我也尝试过使用 User-Agent 标头,但没有结果,但此脚本适用于其他网页。
你好!我有这个脚本:
URL = "http://www.hitmeister.de/"
page = urllib2.urlopen(URL).read()
soup = BeautifulSoup(page)
links = soup.findAll('a')
for link in links:
print link['href']
这应该从网页中获取链接,但它没有,可能是什么问题?我也尝试过使用 User-Agent 标头,但没有结果,但此脚本适用于其他网页。
BeautifulSoup 有一个非常好的错误消息。你读过它并遵循它的建议吗?
/Library/Python/2.7/site-packages/bs4/builder/_htmlparser.py:149:RuntimeWarning:Python 的内置 HTMLParser 无法解析给定的文档。这不是 Beautiful Soup 中的错误。最好的解决方案是安装一个外部解析器(lxml 或 html5lib),并将 Beautiful Soup 与该解析器一起使用。请参阅http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser寻求帮助。
“Python 的内置 HTMLParser 无法解析给定的文档。这不是 Beautiful Soup 中的错误。最好的解决方案是安装外部解析器(lxml 或 html5lib),并在该解析器中使用 Beautiful Soup。见http://www .crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser寻求帮助。”))
回溯(最近一次通话最后):
文件“”,第 1 行,在
文件“/Library/Python/2.7/site-packages/bs4/init .py”,第 172 行,在init self._feed ()
_feed self.builder.feed( self.markup ) 中的文件“/Library/Python/2.7/site-packages/bs4/init .py”,第 185 行
文件“/Library/Python/2.7/site-packages/bs4/builder/_htmlparser.py”,第 150 行,在提要中
HTMLParser.HTMLParseError:格式错误的开始标记,第 57 行,第 872 列
import urllib
import lxml.html
import urlparse
def get_dom(url):
connection = urllib.urlopen(url)
return lxml.html.fromstring(connection.read())
def get_links(url):
return resolve_links((link for link in get_dom(url).xpath('//a/@href')))
def guess_root(links):
for link in links:
if link.startswith('http'):
parsed_link = urlparse.urlparse(link)
scheme = parsed_link.scheme + '://'
netloc = parsed_link.netloc
return scheme + netloc
def resolve_links(links):
root = guess_root(links)
for link in links:
if not link.startswith('http'):
link = urlparse.urljoin(root, link)
yield link
for link in get_links('http://www.google.com'):
print link