网络挖掘:需要帮助进行网络爬行

TB161TB161 成员职位:7新手
2020年6月编辑 帮助
大家好,社区成员!

我正在寻找一种方法做网络爬行。现在我已经在论坛上读到,https网站不能很容易地使用操作员“网络抓取”。您必须使用“获取页面”和“循环”的组合,就像描述的那样(来自Telconstar),但我还没有发现任何关于这种方法的信息。

我将简要地解释我想爬什么。我想从一个德国房地产网站(immowelt.de)中抓取显示的属性。

通常情况下,该位置可以通过链接访问;房间;Roomto;买或租;分拣机的顺序:

immowelt.de / liste /想象/ wohnungen /买什么? roomi = 2 &rooma = 2种= relevanz

然后列出所显示的属性,链接由常量expose和offer的ID组成,如下所示:

immowelt.de / projekte / / k2rb332暴露

使用“web爬行”操作符会很容易,只需将“expose”语句作为爬行的参数

“获取页面”和“循环”怎么样?身份证不算数,如果你能帮我,我将非常感激。
祝你和你的家人周末愉快

问候

TB161

答案

  • kaymankayman 成员职位:662独角兽
    典型的工作流程可能是这样的:

    抓取第一页,并提取旁边的常规内容,也为网页数量的指标。

    举个例子

    8 .“真计划”(141)


    所以我们知道总共有8个页面,并且站点在一个页面上显示了6个页面,所以我们可以创建一个宏来存储我们的页面(8除以6的上限是2个页面)

    接下来你需要做一些反向页面工程,以了解一个网站如何从一个页面移动到另一个页面。如果幸运的话,它是类似mysite.com/page?nextpage=2的东西,因此您创建了一个循环流,其中您抓取页面,但每次都增加页面参数

    mysite.com/page ?全心全意= 3
    mysite.com/page ?全心全意= 4


    直到你需要的最后一页

    现在,您的页面似乎是动态加载的(不移动到一个新的页面,而只是添加先前加载的页面),所以在这种情况下它不是直接的。您可能需要查看页面加载序列(使用谷歌inspect - network)来查看哪个页面在幕后加载。

    希望这能让你开始
  • TB161TB161 成员职位:7新手
    你好Kayman,

    谢谢你的建议……前几天我试过了,但不幸的是我的经验有限。
    因此,我使用Parsehub进行爬行,其余的我将在redmine中完成。

    谢谢你的支持!!

    认为结核病
  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽
    您还可以将原始页面的html与您的查询结果一起存储,然后从该页面中提取所有链接(使用正则表达式)并将它们放入csv文件中,然后使用“Get Pages”操作符。无论如何,这里都需要一些创造性的变通办法。我多么希望RapidMiner能修复爬行Web操作员的https问题!
    布莱恩·T。
    Lindon合资企业
    乐鱼体育官方app数据科学咨询由认证的RapidMiner专家
  • TB161TB161 成员职位:7新手
    你好布莱恩……

    好主意,这可以飞....但是HTML不是只有“第一”页吗?

    当我的结果有几个页面,我不知道如何抓取它们。

    问候

    结核病
  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽
    我的建议假设所有带有属性id的页面的html链接必须嵌入到页面的原始html中(不要单击特定的属性来查看它)。因此,您可以将原始html保存为文档,然后使用文档处理来提取所有链接,然后将这些链接放在一个文件中,用于Get Pages操作符的输入。
    布莱恩·T。
    Lindon合资企业
    乐鱼体育官方app数据科学咨询由认证的RapidMiner专家
登录注册置评。