0

以前、BeautifulSoupとlxmlを使用してWebページを解析した場合、リンクはすべて次のようになっているため、非常に簡単<a href="www.website.com">Website</a>でした。ただし、リンクがブラウザには表示されるがページソースには表示されないWebページに遭遇しました。

たとえば、このEdmunds.comページでは、Past Long-Term Road Testsセクションは次のようになります。

1991 Acura NSX
2011 Acura TSX Sport Wagon
...


ただし、ページPast Long Long-Term Road Testsのセクションのソースコードは次のようになります。

<script type="text/javascript">
PAGESETUP.addControl(function() {
function linksObj(){
var elink = "|acura|nsx|1991|long-term-road-test|"; //generates edmunds.com/acura/nsx/1991/long-term-road-test/
this.link0 = {anchor:elink,label:"1991 Acura NSX"};
var elink = "|acura|tsx-sport-wagon|2011|long-term-road-test|"; //generates edmunds.com/acura/tsx-sport-wagon/1991/long-term-road-test/
this.link1 = {anchor:elink,label:"2011 Acura TSX Sport Wagon"};
...
}
var links_obj = new linksObj();
var links_container = document.getElementById('links_list_offpage2');
var more_link = "";
var more_link_text = "";
var elinks = new EDMUNDS.linksList(links_obj, links_container,more_link, more_link_text);
}, 'low');
</script>

Javascript行var elink = "|acura|nsx|1991|long-term-road-test|";がブラウザで展開さedmunds.com/acura/nsx/1991/long-term-road-testれます。


BeautifulSoupやlxmlなどのツールは、Javascriptで生成されたリンクを見つけられません。これらのリンクを解析するにはどうすればよいですか?

4

1 に答える 1

2

このページの JavaScript を実行するには、ghost.pyなどのヘッドレス ブラウザーを使用します。JS で変更された DOM を問題なく破棄できます。

于 2013-02-15T05:58:52.120 に答える