点击网页上的多个链接并从每个链接中提取信息?

时间:2015-12-27 05:16:14

标签: html excel excel-vba web-scraping screen-scraping vba

我访问了一个网页,其中包含多个超链接的列表,每个超链接都是唯一的。就是这个: webpage I have access to that lists names from top to bottom. Each name is unique and is a hyperlink. I would like to click on these hyperlinks one by one and extract info from the resulting webpage.

说我点击第一个名字,比如亚当,然后它将我带到以下网页: alt:this is a page of the user's profile and includes info such as name, email status and more

我的目标是创建一个程序,点击顶部的名称,然后获取电子邮件地址并将其放在我本地计算机上的Excel电子表格中。然后返回原始页面,点击之前点击的名称正下方的名称,然后将此名称生成电子邮件并将其投放到电子表格中。

对于那些看图片的人,我想点击'Adam',然后将他的电子邮件放入电子表格,然后返回,然后点击'Adrian',然后将他的电子邮件放入电子表格中,等等在列表中等等。

我需要做什么/学习创建一个能够为我做这件事的工具?

我知道一点Java和一点点html。我一直在努力寻找解决方案,但我能得到的最多的是excel vba点击第一个名字,但不多了。即使我让vba单击所有名称,似乎我必须输入一个指令,让vb​​a找到每个唯一的名称,我没有看到这样做的重点,因为它可能更快,只是手动执行此操作然后

因为我不是程序员(但很想很快:))因为我不知道任何技术术语,所以我在问这个问题时遇到了一些麻烦。

关于如何做到这一点的任何想法/建议?

1 个答案:

答案 0 :(得分:0)

使用javascript和一点点php可以实现这一点。由于看起来这是在浏览器中运行的东西,它可能是你最好的选择。

  1. 让您的程序点击链接js具有激活链接的能力。你可以
  2. click on body load

    页面上的第一个链接, 然后有一个计数器,每次点击链接时都会计数。

    `Find out how many links there are in the document:`
    
        var x = document.links.length;`
    `Get the URL of the first link (index 0) in the document:`
    
    `var x = document.links[0].href;`
    

    单击要单击的链接

    $(function(){
        $('#myLink').trigger('click');
    })
    
    1. 现在您需要在下一页上获取此页面上的电子邮件地址。如果你知道css只是抓住元素中的字符串。此时您可以使用javascript返回上一页。

      <button onclick="goBack()">Go Back</button>

    2. 现在您在原始页面上。你的柜台高一个数字。使用计数器单击下一个链接,程序将重复将新电子邮件推送到阵列的过程。

      var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi");

    3. 一旦程序用完了点击或点击你的计数器限制的链接,你将需要用javascript创建一个txt文件。使用PHP将数组写入文件。您可以使用ajax调用执行此操作。

    4. 对传递数组的php文件进行AJAX调用。 php然后可以写入该文件。

    5. Here is an example of making a text file and writing to it with javascript

      遵循这个逻辑,您可以非常轻松地创建一个按页面顺序激活链接的应用程序,将电子邮件地址作为字符串推送到数组。返回上一页并继续该过程,直到您拥有所有链接。此时,程序会将数组中的所有数据写入文件。