2013-03-21 69 views
2

我刚从使用urllib2作为我的HTTP访问库切换到使用request库。在urllib中,您使用BeautifulSoup来使用findAll(tag='element')函数来拉取html元素,我是否继续以相同的方式使用BeautifulSoup,或者请求是否具有简化此过程的函数?正确的库用法:请求w/bs4.BeautifulSoup?


使用的urllib2


import urllib2 
from bs4 import BeautifulSoup as BS 

response = urllib2.urlopen('http://stackoverflow.com/') 
soup = BS(response) 

for a in soup.findAll('a'): 
    print a['href] 

拉动标签使用请求


import response 

response = request.get('http://stackoverflow.com/') 

for a in response.findAll('a'): 
    print a['href] 

回答

1

request仅拉动标签更容易从URL获取数据,尤其是在存在重定向等情况下。它不会为您分析HTML的正文,您仍然应该使用BeautifulSoup做到这一点,并为其添加导入代码片段,以及类似的东西:

soup = BS(response.text)