美丽的汤输出错误

时间:2015-07-11 04:56:04

标签: python web-scraping beautifulsoup

我正在尝试使用beautifulsoupgamespot上的网页抓取数据。但是,结果与我从page source viewer获得的结果非常不同。首先,产生了很多errors。例如,我们有

r = requests.get(link) 

soup = bs4.BeautifulSoup(r.text)

然而soup.title给出了

  

<title>404: Not Found - GameSpot</title>

我实际想要刮去的数据甚至都没有出现。是因为网页旁边包含javascript吗?如果是这样我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:1)

您只是向服务器发送HTTP请求。您需要处理Javascript才能获取内容。

支持Javascript的无头浏览器,如Ghost,它是一个不错的选择。

from ghost import Ghost

ghost = Ghost()

ghost.open(link)
page, resources = ghost.evaluate('document.documentElement.innerHTML;')
soup = BeautifulSoup(page)

.evaluate('document.documentElement.innerHTML')将显示动态生成的内容,而不是您看到的静态内容。

答案 1 :(得分:0)

您的连接错误是:socket.error:[Errno 54]通过对等方重置连接 第一次连接到http://www.gamespot.com时 你必须抓住cookie并将其用于响应标题中的其他页面。