javascript - 解析 Javascript 生成 HTML 的链接?

标签 javascript html web-scraping beautifulsoup

过去,当我使用BeautifulSoup和lxml来解析网页时,这非常容易,因为链接都是这样的:<a href="www.website.com">Website</a> 。但是,我遇到过一些网页,其中链接出现在浏览器中但不在页面源中。

例如,在this Edmunds.com page上,Past Long-Term Road Tests部分如下所示:

1991 Acura NSX
2011 Acura TSX Sport Wagon
...

<小时/>

但是,Past Long Long-Term Road Tests的源代码the page 部分看起来像这样:

<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 中生成的链接。我如何解析这些链接?

最佳答案

使用 headless browserghost.py运行页面的 JavaScript,并且您应该可以毫无问题地废弃 JS 更改的 DOM。

关于javascript - 解析 Javascript 生成 HTML 的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14889071/

相关文章:

javascript - 将类与表行匹配

javascript - 无法读取未定义的 mysql 的属性 'typeCast'

php - 我的表单如何使用 <select> 提交文本值?

javascript - 如何使用 Bootstrap 和 thymeleaf 在模态内填充表单的值?

excel - 找不到任何获取请求 header 的方法

html - 按类和标签名称的网页抓取元素

javascript - 本地址栏在 Mobile Chrome 上隐藏时 DIVS 调整大小

javascript - 是否有一种速记方法可以初始化多个私有(private)实例变量?

javascript - 根据视口(viewport)大小更改 HTML 元素的宽度

google-chrome - 如何在Chrome中提取 "inspect element"部分中的代码?