【问题标题】:Python scraping from real state webistePython从房地产网站抓取
【发布时间】:2018-01-16 02:59:18
【问题描述】:

我想抓取以下页面

html='https://www.quintoandar.com.br/alugar/imovel/sao-paulo-sp-brasil/1-vagas/de-20-a-75-m2/de-500-a-4400-reais/apartamento')

为了得到租金价格,总值和位置,存储为每张图片下方的三行文本。

我试过了

import requests
from bs4 import BeautifulSoup

page=requests.get(html)
soup = BeautifulSoup(page.content, 'html.parser')

for tag in soup.findAll('div'):
    if tag.has_attr('class'):
        span=tag.findAll('span')
        print(span.text)

我的意图是进入带有class属性的div标签,找到里面的span类,然后获取它们的文本。这就是对 html 的检查所暗示的。

但是,我什么也没得到。好像没有任何 div 标签。

有什么线索吗?

【问题讨论】:

  • SCRAPPING 呵呵!!在创建任何帖子之前,至少尝试用谷歌搜索要在标题中使用的正确关键字。

标签: python web-scraping beautifulsoup


【解决方案1】:

此站点通过 JSON API 请求(如 this one)获取显示的信息。它实际上比 HTML 更容易解析,例如:

url = "some url constructed by substituting chunks in the URL quoted above"
data = requests.get(url).json()
for hit in data["hits"]["hit"]:
    """ hit is an object like this:
        {u'fields': {u'aluguel': u'1100',
          u'area': u'58',
          u'custo': u'1768',
          u'endereco': u'Rua Mariquinha Viana',
          u'foto_capa': u'capa892812990657_7908319390783DSC1351.JPG',
          u'id': u'892812990',
          u'photos': [u'892812990-657.7908319390783DSC1351.JPG',
           u'892812990-262.59010615240265DSC1352.JPG',
           u'892812990-981.8163710707928DSC1354.JPG',
           u'892812990-451.7013311422439DSC1355.JPG',
           u'892812990-173.347171880453DSC1356.JPG'],
          u'quartos': u'2',
          u'regiao_nome': u'Santana'},
         u'id': u'892812990'}
    """

使用浏览器中的开发者工具(按 F12 打开)检查网络活动。

【讨论】:

  • 谢谢!你能提供一些细节吗?要使用的库等
  • 添加了一个例子。不需要额外的请求
  • 谢谢!最后一个问题:您能否详细说明如何获取您正在构建的这些 url?
  • 如果您查看 URL,它包括搜索查询和搜索矩形的坐标。我认为剥夺你的最后一点工作是不公平的
  • 知道了!谢谢你的帮助
猜你喜欢
  • 2023-03-27
  • 2022-11-09
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 2018-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多