如何从教科书回购网站获取信息?

时间:2017-02-05 02:59:48

标签: php python html request screen-scraping

我正在制作一个程序,其中一个部分是找出教科书的最佳回购价格。我试图通过网络抓取“https://bookscouter.com”中的值,例如“https://bookscouter.com/prices.php?isbn=1285428226&searchbutton=Sell”值为34 $。问题是网站绝对不是静态的,简单的python抓取并不真正起作用。我该怎么做?某种要求?我对网络工作不是很有经验,所以任何建议都会受到赞赏。最好,

1 个答案:

答案 0 :(得分:0)

此页面使用Ajax获取一些其他信息。 https://bookscouter.com/prices.php?isbn=1285428226&searchbutton=Sell的源代码显示

<script language="javascript" type="text/javascript">
    function fetchresults_cb(search_id, text) {
        replaceContent('price_results', text);
        if(text.match(/INCOMPLETE/i)) {
            currentTime = new Date();
            time = currentTime.getTime();
            delayfunc = "AjaxRetrieve('/ajax_prices.php?type=PREFERRED&isbn=1285428226&search_id="+search_id+"&ts="+time+"', 'fetchresults_cb(\\'"+search_id+"\\', THISREQ.responseText)', 'true');";
            setTimeout(delayfunc, 3000);
        }

</script>

有一种不同的方法可以解析这种页面。

第一种方法是在Python中重新实现上面的源代码并获取其他资源,比如浏览器在JavaScript执行期间执行它。您可以分析页面的完整源代码,或使用network monitor标识所需信息可用的URL地址。

第二种方法是使用Selenium,它使用浏览器引擎执行JavaScript并提供包含所有必需信息的完整源代码。

我相信您拥有bookscouter.com数据库所有者的权限来执行此类活动。