在python中动态网页抓取

时间:2015-04-07 08:03:45

标签: python beautifulsoup urllib2

如何在Python中抓取动态上传的网页? 在Python中有可能吗?

与使用Beautifulsoup时一样,我们只能抓取网页的静态内容 但我想抓一个动态上传的网页。

4 个答案:

答案 0 :(得分:0)

您可以使用程序包mechanize执行您在浏览器中执行的大部分操作。

  

在Andy Lester的Perl模块WWW :: Mechanize之后进行有状态的程序化网页浏览。

     

mechanize.Browser实现了urllib2.OpenerDirector接口。浏览器对象具有状态,包括导航历史,HTML表单状态,cookie等.Blog对象处理的功能集和URL方案是可配置的。该库还提供了一个与urllib2兼容的API:如果在任何地方用“mechanize”替换“urllib2”,你的urllib2程序可能仍然有效。

     

功能包括:ftp:,http:和文件:URL方案,浏览器历史记录,超链接和HTML表单支持,HTTP Cookie,HTTP-EQUIV和Refresh,Referer [sic]标头,robots.txt,重定向,代理和基本和摘要HTTP身份验证。

答案 1 :(得分:0)

动态页面使用 JavaScript 来更改页面内容,方法是按下按钮并... 您可以使用名为的python库处理JavaScript,这样您的 网络驱动程序将单击一个按钮,然后为您...。这样您就可以用漂亮的汤刮擦该页面。 请注意,精美的汤只能获取当前在页面上显示的内容。 这是您每次都会做的事情:

  1. 使用硒和浏览器网络驱动程序打开URL(您可以搜索下载)
  2. 查找按钮,选项卡或任何使页面具有动态性并命令单击的内容 硒。
  3. 用漂亮的肥皂抓取页面源代码并刮擦所需的信息。

答案 2 :(得分:0)

我建议您参加selenium。它所做的只是打开浏览器,并完全执行实际用户的操作。您可以单击按钮,然后做一个真实的人可以在网站上做的任何事情。一个简单的谷歌搜索将为您提供很多教程。我会明确添加文档链接,因为谁甚至会读到它们:p

答案 3 :(得分:0)

您只能使用BeautifulSoup和Requests库执行此操作。您想要做的是对网站正在制作的API调用进行反向工程。这可以通过签入开发人员设置并进入“网络”标签来完成。谢谢,希望对您有所帮助!