使用urllib2抓取this页面时:
url = https://www.geckoboard.com/careers/
response = urllib2.urlopen(url)
content = response.read()
在源代码中找不到以下元素(作业的链接)(content
)
查看在浏览器中呈现的完整源代码:
因此看起来FRONT-END ENGINEER元素是由Javascript动态加载的。是否有可能让urllib2(或其他低级库)执行此Javascript而不涉及例如Selenium,BeautifulSoup还是其他?
答案 0 :(得分:1)
使用一些<?php
$x =88;
$numbers = array();
while ($x % 2 == 0 && $x <= 99) {
$numbers[] = "$x";
$x++;
}
print_r($numbers);
?>
加载信息。您可以对ajax request
使用firebug
扩展名,或者谷歌浏览器有自己的工具来获取详细信息。只需在打开网址时点击谷歌浏览器中的mozilla
即可。你可以在那里找到完整的细节。
您会在其中找到包含网址f12
来自上述网址的信息会在该网页中呈现。
答案 1 :(得分:1)
根据我的理解,您正在为多个网站构建通用,并且不想深入了解某个网站的加载方式,以及在引擎盖来构建页面。在这种情况下,真实浏览器是您的朋友 - 通过selenium
自动将页面加载到真实浏览器中 - 然后,一旦页面加载,将.page_source
传递给{ {1}}(从我看到这是你选择的HTML解析器)进一步解析。
如果您不想显示浏览器或者您没有显示器,则可以无头{ - 3}}或PhantomJS
上的常规浏览器。
以下是一个示例代码,可帮助您入门:
lxml.html
您还应该知道,有很多virtual display,您甚至可能不需要单独的HTML解析器。
答案 2 :(得分:0)
我认为你正在寻找这样的事情:https://github.com/scrapinghub/splash