【问题标题】:I have a problem when web scraping python我在网页抓取 python 时遇到问题
【发布时间】:2021-03-16 06:25:16
【问题描述】:

我必须从 ebay.com 抓取数据,我的抓取项目是:'title of car'、'make'、'model'、'transmission' 和 'price',我已经抓取了所有这些项目,但是当写入'传输'的代码,告诉我这个错误:

Traceback (most recent call last):
  File "C:/Users/Oogway/PycharmProjects/web_scraping1/test.py", line 27, in <module>
    trans_of_car = title_trans.text
AttributeError: 'NoneType' object has no attribute 'text'

而且它不会刮掉“传输”项目!。 *tip : 从 'transmission' 中抓取一些项目,然后显示错误,并在显示错误后scrape 拖一个 'transmission' 项目。

代码:

import requests
from bs4 import BeautifulSoup
import re

url = 'https://www.ebay.com/b/Cars-Trucks/6001?_fsrp=0&_sacat=6001&LH_BIN=1&LH_ItemCondition=3000%7C1000%7C2500&rt=nc&_stpos=95125&Model%2520Year=2020%7C2019%7C2018%7C2017%7C2016%7C2015'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')

ebay_cars = soup.find_all('li', class_='s-item')
for car_info in ebay_cars:

    title_div = car_info.find('div', class_='s-item__wrapper clearfix')
    title_sub_div = title_div.find('div', class_='s-item__info clearfix')
    title_p = title_sub_div.find('span', class_='s-item__price')
    title_tag = title_sub_div.find('a', class_='s-item__link')
    title_maker = title_sub_div.find('span', class_='s-item__dynamic s- item__dynamicAttributes1')
    title_model = title_sub_div.find('span', class_='s-item__dynamic s-item__dynamicAttributes2')
    title_trans = title_sub_div.find('span', class_='s-item__dynamic s-item__dynamicAttributes3')

    name_of_car = title_tag.text
    price_of_car = title_p.text
    maker_of_car = title_maker.text
    model_of_car = title_model.text
    trans_of_car = title_trans.text

【问题讨论】:

  • 在访问抓取的 html 对象的元素之前,您必须进行空检查。每次执行.find() 时都需要重复此操作

标签: python web-scraping beautifulsoup python-requests


【解决方案1】:

这是因为,此特定条目的网站中不存在此元素,这意味着它是None。只需将语句放在 try , except 子句中,这会导致此错误,这将有所帮助..

在这种情况下...

try:
  trans_of_car = title_trans.text
except:
  trans_of_car = ''

【讨论】:

    猜你喜欢
    • 2018-05-30
    • 2023-03-24
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2016-08-01
    相关资源
    最近更新 更多