繁体   English   中英

在 python 中使用 beautifulsoup 抓取时缺少值

[英]Missing values while scraping using beautifulsoup in python

我正在尝试使用 python 进行 web 抓取作为我的第一个项目(完全不熟悉编程),我快完成了,但是 web 页面上的一些值丢失了,所以我想用类似“ 0”或“未找到”,我真的只是想从数据中创建一个 csv 文件,而不是真正继续进行分析。

我抓取的 web 页面是: https://www.lamudi.com.mx/nuevo-leon/departamento/for-rent/?page=1

我有一个循环收集页面的所有 te 链接,然后转到每个链接以抓取数据并将其保存在列表中,但是我的一些列表的元素少于其他列表。 所以我只想让我的程序识别缺失值和 append 是“0”或“未找到”到我的“尺寸”列表。

用于收集页面上的链接:

tags = soup('a',{'class':'js-listing-link'})
for tag in tags:
    link = tag.get('href')
    if link not in links:
        links.append(link)

print("Number of Links:", len(links))

收集每个部门的规模:

for link in links:
    size = soup('span',{'class':'Overview-attribute icon-livingsize-v4'})
    for mysize in size:
        mysize = mysize.get_text().strip()
        sizes.append(mysize)

print("Number of Sizes:", len(sizes))

在此页面上,您可以 select 所有列表行(使用.select('.ListingCell-row') )然后 select 其中的所有信息(并将缺少的信息替换为- ):

import requests
from bs4 import BeautifulSoup


url = 'https://www.lamudi.com.mx/nuevo-leon/departamento/for-rent/?page=1'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0'}
soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')

for row in soup.select('.ListingCell-row'):
    name = row.h3.get_text(strip=True)
    link = row.h3.a['href']
    size = row.select_one('.icon-livingsize')
    size = size.get_text(strip=True) if size else '-'
    print(name)
    print(link)
    print(size)
    print('-' * 80)

印刷:

Loft en Renta Amueblado Una Recámara Cerca Udem
https://www.lamudi.com.mx/loft-en-renta-amueblado-una-recamara-cerca-udem.html
50 m²
--------------------------------------------------------------------------------
DEPARTAMENTO EN RENTA SAN JERONIMO EQUIPADO
https://www.lamudi.com.mx/departamento-en-renta-san-jeronimo-equipado.html
-
--------------------------------------------------------------------------------
Departamento - Narvarte
https://www.lamudi.com.mx/departamento-narvarte-58.html
60 m²
--------------------------------------------------------------------------------

...and so on.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM