【问题标题】:getting data from div Class从 div 类获取数据
【发布时间】:2021-10-26 09:54:12
【问题描述】:

所有数据都在 Div 类中。我已经编写了一些代码来访问第一个类以提取数据,但它现在正在工作,请查看代码。

import requests
import pandas as pd
from bs4 import BeautifulSoup
url = "https://www.olx.com.pk/items?page=1"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
rows = soup.select("ba608fb8 de8df3a3.li")
all_data = []
for row in rows:
    price = row.find_all("div", class_="_7978e49c _2e82a662")
    all_data.append[(price)]
print(all_data)

【问题讨论】:

  • 您好,请问您在代码中遇到了什么错误或问题??
  • 它没有返回任何输出,只是给出了空的数据框

标签: python web web-scraping beautifulsoup


【解决方案1】:

您的代码中很少有问题:

  • 您必须选择带有类名的<ul> - ba608fb8 de8df3a3
  • 然后使用find_all()方法找出所有<li>
  • 价格在 <span> 标签内,类名 - _7978e49c _2e82a662。选择它们并从中取出文本。
  • 将值附加到列表 - all_data.append(price) 而不是代码中的值。

这是从 URL 获取价格的代码。

import requests
import pandas as pd
from bs4 import BeautifulSoup
url = "https://www.olx.com.pk/items?page=1"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
rows = soup.find('ul', class_="ba608fb8 de8df3a3").find_all('li')
all_data = []
for row in rows:
    temp = row.find("span", class_="_7978e49c _2e82a662")
    if temp:
        price = temp.text.strip()
        all_data.append(price)
print(all_data)
['Rs 98,000', 'Rs 2,200,000', 'Rs 29,999', 'Rs 12,800', 'Rs 30,000', 'Rs 28,000', 'Rs 18,500', 'Rs 3,500', 'Rs 225,000', 'Rs 22,000', 'Rs 2,180,000', 'Rs 4,000', 'Rs 1,600,000', 'Rs 210,000', 'Rs 24,000', 'Rs 25,000', 'Rs 18,000']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2020-09-14
    相关资源
    最近更新 更多