首页 > 解决方案 > 如何使用 beatutifulsoup 获取“内容==$0”中的“内容”

问题描述

当我试图在这个网站(https://cd.lianjia.com/ershoufang/106101326994.html<span> contents <span>==$0 )上获取一些房屋信息时,我在使用 beautifulsoup4 模块获取报表中的“内容”时遇到了问题,我总是得到一个'0',而不是内容。在此处输入图像描述。非常感谢!

这是我的代码:

import requests
from bs4 import BeautifulSoup
from Headers import headers


def getSigleHouseDetail(houseurl):
    result = {}
    res = requests.get(houseurl)
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, 'html.parser')
    result['totalcount'] = soup.select('.totalCount')[0].select('span')[0].text
    return result

url = 'https://cd.lianjia.com/ershoufang/106101326994.html'
print(getSigleHouseDetail(url)['totalcount'])

标签: python

解决方案


您现在正在做的是打印您从以下行创建的对象的索引: result['totalcount'] = soup.select('.totalCount')[0].select('span')[0].text

相反,您应该捕获内容或使用诸如 class、id 等属性

import requests
from bs4 import BeautifulSoup

def getSigleHouseDetail(houseurl):

    res = requests.get(houseurl)

    soup = BeautifulSoup(res.text,'html.parser',from_encoding='utf-8')
    method_divs = soup.body.find_all('span', attrs= {'class': 'className'})
    return method_divs[0].text

url = 'https://cd.lianjia.com/ershoufang/106101326994.html'
print(getSigleHouseDetail(url))

行 : return method_divs[0].text 将打印带有 className 的第一个 span 的文本


推荐阅读