【问题标题】:Trouble scraping phone numbers from a website无法从网站上抓取电话号码
【发布时间】:2020-03-10 22:41:57
【问题描述】:

所以我一直试图从一个处理房产(出租/购买房屋、公寓等)的网站中提取每个电话号码。

每个类别中都有很多类别(城市、物业类型)和广告。每当您输入广告时,底部显然会显示更多图片、说明和电话号码。

这是有问题的网站。 https://www.nekretnine.rs/

我编写了一个 python 脚本来提取这些电话号码,但它什么也没给我。这是脚本。

我认为它不起作用,因为它从主页中查找该信息,但该信息不存在,但我只是不知道如何在我的循环中包含所有这些类别的所有这些广告。甚至不要问API,他们没有。我的意思是,我用原始的不眠脚本使他们的网站崩溃了。

for i in range (1,50):

    url = ("https://www.nekretnine.rs/"+ str(i))
    page = urlopen(url)
    soup = BeautifulSoup(page)
    x = soup.find_all("div", {"class":"label-small"})
    time.sleep (2)
    for item in x:
        number =item.find_all("form",attrs = {"span":"cell-number"})[0].text
        data.append((number ))
        print (data)

【问题讨论】:

  • 请提供minimal reproducible example,以及HTML源代码的相关部分。
  • 可以看到上面的python代码,html长这样```
    xxxxxxxxx
    ```

标签: python web-scraping


【解决方案1】:

如果主页上没有你需要的内容,你应该使用beautifulsoup找到你需要的其他页面的链接,然后发布请求获取该html并在那里查找信息

【讨论】:

  • 好的,但我只是想知道我是否应该使用 BS 来指向所有广告(实际上有数十万个)。这是我的问题,所有广告都有单独的页面。我不确定我是否理解您的评论。
  • 这完全取决于您,您需要导航到哪个广告。您可以在 bs 中使用选择器根据 html 标签将其缩小为您想要的选择器,但您必须遍历所有您想要的选择器
【解决方案2】:

对于任何在这里磕磕绊绊的人,我找到了答案

https://webscraper.io/

这个浏览器脚本有我需要的一切,它很简单,不需要编码,如果你需要的话,可以减去一些正则表达式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多