我是python的新手。作为编写模块来抓取URL的一部分,我注意到我使用python请求模块获得的内容可能与我在浏览器中加载URL时获得的内容不同。这是因为页面可能包含执行的JS代码,结果是我在浏览器中看到的结果。
我的问题 - 1.我该如何处理这些网站。
python或任何其他模块是否仅限于在服务器端完全呈现静态页面或页面?
如何处理执行Ajax样式查询以加载页面的页面?
我假设可能没有这个库,我必须自己做点什么。我希望我不必在我的代码中构建类似webkit的东西:)
感谢您的帮助。
答案 0 :(得分: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
答案 1 :(得分:0)