网站挖掘:需要帮助的网络爬行与

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

我正在寻找一种方法来做网络爬行。现在我在论坛上读到,https网站不容易被抓取使用运营商“网络抓取”。您必须使用“get pages”和“loop”的组合,就像上面描述的那样(来自Telconstar),但我还没有找到任何关于这种方法的信息。

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

通常,位置可以通过链接访问;房间;Roomto;购买或租用;排序器的顺序:

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

然后列出显示的属性,链接由常量expose和报价ID组成,见下文:

immowelt.de / projekte / / k2rb332暴露

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

“get pages”和“loop”怎么样?身份证不符合要求,如果你能帮助我,我将非常感激。
祝大家和家人周末愉快

问候

TB161

答案

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

    抓取第一个页面并在常规内容旁边提取,这也是页面数量的指标。

    对于你的例子,这将是

    8 object zum Kauf (insgesamt 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能够修复爬行网络运营商的https问题!
    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
  • TB161TB161 成员职位:7新手
    你好布莱恩……

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

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

    问候

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