有没有一种好的方法来以正确的顺序组合这些find_all列表

时间:2019-02-11 10:24:54

标签: python-3.x beautifulsoup

我正在使用Python和BeautifulSoup抓取一些基本数据。我有两个与数据相关的变量。我可以在自己的打印语句中很好地打印数据,剥离标签并格式化好格式。如果我想以一种聪明的方式尝试组合我的汤find_all,或者我想出一种更好的方式来结合打印这两个变量,我就无法解决。

数据基本上是房地产拍卖的结果。 “ div”下的一组标签是郊区和街道。价格在“ span”下具有不同“ attrs =”的另一组标签。

我尝试在汤.find_all查询之间使用+,但这是在打印时所有的前+后所有查询,我尝试使用BeautifulSoup doco页面中的“ for child in results.descendants”和其他选项。

我尝试找到另一个堆栈溢出答案,该答案显示了如何正确组合我的.find_all查询,但是我遇到的问题是div标签和span标签组合在一起(我认为),并且我得到了span的双重打印集标记的项目,其中一种格式正确,另一种仍在跨度标签中。

代码为(按下面的comment.answer编辑):

    from bs4 import BeautifulSoup
    from urllib.request import urlopen

    # URL for scraping
    quote_page = 'https://www.allhomes.com.au/auction-results/'

    # query the website and return the html to the variable 'page'
    page = urlopen(quote_page)

    # parse the html using beautiful soup and store in variable `soup`
    soup = BeautifulSoup(page,'html.parser')

    # grab the data from the different places in the page
    sched_auctnum_and_clear_perc = soup.find_all("p", "allhomes-auction- 
    results__stats-item-value") # Headline numbers

    house_and_address = soup.find_all("div", ["allhomes-auction-results__listing-group-title",
                                     "allhomes-listing-card__auction-address"])

    prices = soup.find_all("span", attrs={"allhomes-listing-card__auction-price-main",
                                "allhomes-listing-card__auction-price-prefix"})


    for scheduled_percents in sched_auctnum_and_clear_perc:
        num_percent = scheduled_percents.contents[0]
        print(num_percent)

    for each_house_result in prices:
        results_or_price = each_house_result.contents[0]
        print(results_or_price)

    for houses_results in house_and_address:
        street_address = houses_results.contents[0]
        print(street_address)

将变量与价格变量合并,容纳和处理的最佳方法是什么。

喜欢听听您的意见!

0 个答案:

没有答案