0

我是 python 新手。作为编写用于抓取 URL 的模块的一部分,我注意到我使用 python 请求模块得到的结果可能与我在浏览器中加载 URL 时得到的不同。这是因为页面可能包含执行的 JS 代码,结果是我在浏览器中看到的帽子。

我的问题 - 1. 我该如何处理这些网站。

  1. python 或任何其他模块是否仅限于获取静态页面或在服务器端完全呈现的页面?

  2. 如何处理执行 Ajax 样式查询以加载页面的页面?

我假设可能没有图书馆,我必须自己做点什么。我希望我不必在我的代码中构建 webkit 之类的东西:)

谢谢你的帮助。

4

2 回答 2

0

您可以查看模拟浏览器(如mechanize)或实际驱动浏览器(如selenium )的东西,它应该报告您在 javascript 运行后看到的 html。

这应该是您需要对 Selenium 执行的操作,但已经有一段时间了:

from selenium import webdriver

br = WebDriver.Ie() #or .Firefox() or .Chrome() (but not on x64)
br.get(r'http://google.com')
html = br.page_source

对于 html 比较,它至少是不同的:

from requests import get
r = get(r'http://google.com')
print r.content[:100]
>>><!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"><head><meta itemprop'
print html[:100]
>>><html itemtype="http://schema.org/WebPage" itemscope="itemscope"><head><meta http-equiv="X-UA-Compat
于 2013-04-06T18:13:42.413 回答
0

你可以使用

和一个相关问题:Web-scraping JavaScript page with Python

于 2013-04-06T18:38:23.077 回答